[英]How to save HeadColumn in DataGridView to Excel?
I make datagridview export to excel 我使datagridview导出到excel
but Headcolumn don't show in excel files. 但Headcolumn不在Excel文件中显示。
Sample 样品
result (in Excel) 结果(在Excel中)
1 | mani | 213/435 | 0-892-342234-09
2 | ware | 1/67 | 053-36-49
But I need result (in Excel) 但我需要结果(在Excel中)
ID | Name | Address | Tel. >>> **Headcolumn**
1 | mani | 213/435 | 0-892-342234-09
2 | ware | 1/67 | 053-36-49
Code C# Windows Form 代码C#Windows窗体
private void btExport_Click(object sender, EventArgs e)
{
string sql = @"SELECT id,fullname,address,tele FROM tablePeople";
SqlCommand cmd = new SqlCommand(sql, Conn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds, "data");
DataTable dt = ds.Tables["data"];
Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Add(misValue);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
int r = 0;
int c = 0;
// DGV To EXCLE But HeadColumn don't show in excel
for (r = 0; r <= dataGridView1.RowCount - 1; r++)
{
for (c = 0; c <= dataGridView1.ColumnCount - 1; c++)
{
DataGridViewCell cell = dataGridView1[c, r];
xlWorkSheet.Cells[r + 1, c + 1] = cell.Value;
}
}
xlWorkBook.SaveAs(@"c:\details.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
xlWorkBook.Close(true, misValue, misValue);
xlApp.Quit();
releaseObject(xlWorkSheet);
releaseObject(xlWorkBook);
releaseObject(xlApp);
MessageBox.Show("Excel file created");
}
Thanks you very much for your time :) 非常感谢您的时间:)
There is a Columns collection in both DataGridView
and DataTable
You can get your column name by iterating over them. DataGridView
和DataTable
中都有一个Columns集合。您可以通过对它们进行迭代来获取列名。
Before you do this: 在执行此操作之前:
for (r = 0; r <= dataGridView1.RowCount - 1; r++)
{
for (c = 0; c <= dataGridView1.ColumnCount - 1; c++)
{
DataGridViewCell cell = dataGridView1[c, r];
xlWorkSheet.Cells[r + 1, c + 1] = cell.Value;
}
}
Add this code: 添加此代码:
c = 0;
foreach(DataGridViewColumn dataGridViewColumn in dataGridView1.Columns)
{
xlWorkSheet.Cells[0, c++] = dataGridViewColumn.Name;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.