在使用 Visual Studio 2012 開發 WinForms 應用程式時,嘗試將 DataGrid 控件的數據導出到 Excel 檔案,編譯器報錯提示「ColumnCount、Rows、Columns 等在 System.Windows.Forms.DataGrid 中不包含」。
原始代碼嘗試使用 grid1.ColumnCount、grid1.Rows.Count 等屬性,但在 WinForms 中並不存在 DataGrid 這個類別,正確的控件名稱是 DataGridView。
將代碼中的 DataGrid 替換為 DataGridView,並調整相應的屬性名稱:
ColumnCount → Columns.CountRows.Count 保持不變Columns[i].HeaderText 保持不變Rows[j].Cells[k].Value 保持不變// 寫入標題
for (int i = 0; i < dataGridView1.Columns.Count; i++) {
if (i > 0) str += "\t";
str += dataGridView1.Columns[i].HeaderText;
}
sw.WriteLine(str);
// 寫入內容
for (int j = 0; j < dataGridView1.Rows.Count; j++) {
string tempStr = "";
for (int k = 0; k < dataGridView1.Columns.Count; k++) {
if (k > 0) tempStr += "\t";
tempStr += dataGridView1.Rows[j].Cells[k].Value?.ToString() ?? "";
}
sw.WriteLine(tempStr);
}
?.ToString() ?? "" 避免 NullReferenceExceptionStringBuilder 提升性能