我有一个5列的datagirdview数据,包括1列id
和4列文本。 Besida,我被导出到excel文件,但它只显示5条记录,而我的datagridview有更多的记录。如何导出到条件datagridvew excel文件只有1条记录,3条记录...我有一个代码,任何人都可以帮助我吗? :
private void Btnexport_Click(object sender, EventArgs e)
{
saveFileDialog1.InitialDirectory = "C:";
saveFileDialog1.Title = "Save as Excel File";
saveFileDialog1.FileName = "";
saveFileDialog1.Filter = "Excel File(2003)|*.xls|Excel File(2007)|*.xlsx";
if (saveFileDialog1.ShowDialog() != DialogResult.Cancel)
{
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
excel.Application.Workbooks.Add(Type.Missing);
for (int i = 1; i < dataGridView1.Columns.Count + 1; i++)
{
excel.Cells[1, i] = dataGridView1.Columns[i - 1].HeaderText;
}
for (int i =0; i < dataGridView1.Columns.Count;i++ )
{
for(int j=0; j < dataGridView1.Columns.Count; j++)
{
excel.Cells[i + 2, j + 1] = dataGridView1.Rows[i].Cells[j].Value.ToString();
}
}
excel.ActiveWorkbook.SaveCopyAs(saveFileDialog1.FileName.ToString());
excel.ActiveWorkbook.Saved = true;
excel.Quit();
}
}
答案 0 :(得分:0)
我认为您只需将第二行 for循环的列更改为行,导出的数据就是正确的。此外,你保证所有细胞都不是空的吗?如果为空,ToString()将抛出异常。