将DataTable中的数据导出到excel中,数据少的问题

badboy168 2008-06-18 01:25:59
DataTable dt = GetData(); //此处会返回50000条记录的DataTable对象

string[, ] StringArray = ConvertDataTableToStringArray(dt); // 此处将DataTable中的数据导入到string二维数组中

Excel.Range StringRange = (Excel.Range)workSheet.Cells[2, 1];

StringRange = StringRange.get_Resize(dt.Rows.Count, dt.Columns.Count);

StringRange.Value2 = StringArray ;



Save(); // 保存Excel file



但是保存下来的excel文件只有1W多条记录,应该是有5W多,少了很多,不知道是为什么,workSheet中的总行数也没有超过65535,请大家帮忙解决一下,谢谢
...全文
96 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mike老羊 2008-06-18
  • 打赏
  • 举报
回复
wb.SaveAs(FileName, Missing, Missing, Missing, Missing, Missing,
Excel.XlSaveAsAccessMode.xlExclusive, Missing, Missing, Missing, Missing,Missing);
badboy168 2008-06-18
  • 打赏
  • 举报
回复
主要问题出在我的Save()方法上

原方法this.excelApp.ActiveWorkbook.SaveAs(this.excelFileName, Excel.XlFileFormat.xlExcel7, oMissing , oMissing , oMissing , oMissing , Excel.XlSaveAsAccessMode.xlNoChange, oMissing , oMissing , oMissing , oMissing , oMissing );

由于Excel.XlFileFormat.xlExcel7限制了行数的大小,所以将Excel.XlFileFormat.xlExcel7换成了oMissing

*** object oMissing = System.Reflection.Missing.Value;

改后的代码为:

this.excelApp.ActiveWorkbook.SaveAs(this.excelFileName, oMissing, oMissing, oMissing, oMissing, oMissing, Excel.XlSaveAsAccessMode.xlShared, oMissing, oMissing, oMissing, oMissing, oMissing);

其它朋友不要再犯我这样的错误了

110,501

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧