Excel导出最后一行缺失,求大神指导
public bool ExportDataGridview(GridView gridView, bool isShowExcele)
{
if (gridView.Rows.Count == 0)
{
return false;
}
//建立Excel对象
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
excel.Application.Workbooks.Add(true);
excel.Visible = isShowExcele;
int rowCount = gridView.Rows.Count;
int colCount = gridView.Columns.Count;
object[,] dataArray = new object[rowCount, colCount];
for (int i = 0; i < gridView.Columns.Count; i++)
{
dataArray[0, i] = gridView.Columns[i].HeaderText;
}
for (int i = 0; i < rowCount-1; i++)
{
for (int j = 0; j < colCount; j++)
{
if (gridView.Rows[i].Cells[j].Text.GetType() == typeof(string))
{
dataArray[i + 1, j] = "'" + gridView.Rows[i].Cells[j].Text.ToString();//在字符型的变量前加'
}
else
{
dataArray[i + 1, j] = gridView.Rows[i].Cells[j].Text.ToString();
}
}
}
excel.get_Range("A1", excel.Cells[rowCount, colCount]).Value2 = dataArray;
excel.Cells.EntireColumn.AutoFit();
return true;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
导excel觉得npoi很好…
I'm afraid not.. IndexOutOfRangeException... I don't know why
回复 @就爱灬爆炸头 : 你的定义有问题, dataArray的维度行应该多定义一个。new object[rowCount++
you are right,shan Q!
回复 @就爱灬爆炸头 : 更正一下,定义维度不能用rowCount++而是rowCount+1,想必你也发现了。
回复
回复
是的,应该用+1,rowCount++先赋值才自加的
for (int i = 0; i < rowCount-1; i++)
shoule be for (int i = 0; i < rowCount; i++) ?