导出Excel2003时行数限制

        公司软件提供数据导出功能,基于Excel2003的数据导出,前段时间客户提出说软件有BUG数据丢失,这一问题由我来处理,本以为是程序的问题,翻看代码,没发现问题,没办法只能跟踪,本地的测试数据比较少,没找到问题,只能模拟客户的环境,找到了问题所在。

首先看导出的这段代码

导出的代码
  1.                 ExcelApp app = new ExcelApp();
  2.                 app.ErrorCheckingOptions.BackgroundChecking = false;
  3.                 app.ErrorCheckingOptions.NumberAsText = true;
  4.                 app.ErrorCheckingOptions.TextDate = true;
  5.                 Excel2.Workbooks workbooks = app.Workbooks;
  6.                 Excel2.Workbook workbook = workbooks.Add(Excel2.XlWBATemplate.xlWBATWorksheet);
  7.                 object missing = System.Reflection.Missing.Value;
  8.                 Excel2.Worksheet worksheet = (Worksheet)workbook.Worksheets[1];
  9.                 worksheet.Copy(missing, workbook.Worksheets[1]);
  10.                 Excel2.Range range = worksheet.get_Range("A1", missing);
  11.                 range = range.get_Resize(dt.Rows.Count, dt.Columns.Count);
  12.                 object[,] arry1 = new object[dt.Rows.Count, dt.Columns.Count];
  13.                 for (int j = 0; j < dt.Rows.Count; j++)
  14.                 {
  15.                     for (int i = 0; i < dt.Columns.Count; i++)
  16.                     {
  17.                         arry1[j, i] = dt.Rows[j][i];
  18.                     }
  19.                 }
  20.                 range.Value2 = arry1;
  21.                 SaveFileDialog saveFileDialog = new SaveFileDialog();
  22.                 saveFileDialog.Filter = "excel(*.xls)|*.xls";
  23.                 if (saveFileDialog.ShowDialog() == DialogResult.OK)
  24.                 {
  25.                     path = saveFileDialog.FileName;
  26.                 }
  27.                 else
  28.                 {
  29.                     return;
  30.                 }
  31.                 workbook.Saved = true;
  32.                 Excel2.XlFileFormat op = XlFileFormat.xlExcel7;
  33.                 workbook.SaveAs(saveFileDialog.FileName, op, null, null, null, null, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, null, null, null, null, null);
  34.                 workbook.Close(missing, missing, missing);
  35.                 app.Quit();
<script language="javascript"> function CopyCode(key){var codeElement=null;var trElements=document.all.tags("ol");var i;for(i=0;i<trElements.length;++i){if(key.parentElement.parentElement.parentElement==trElements[i].parentElement.parentElement){codeElement=trElements[i];break}}if(codeElement!=null){var content=codeElement.innerText;if(window.clipboardData==null){window.alert("您的浏览器不支持脚本复制,请尝试手动复制。")}else{window.clipboardData.setData("Text",content);window.alert("源代码已经复制到剪贴板上。")}}}function LineNumberVisible(key){var codeElement=null;var trElements=document.all.tags("ol");var i;for(i=0;i XlFileFormat. xlExcel7这个格式是有问题的,实际测试程序导出的行数只有16384行,只要超过16384行的数据就丢失了。为了保证在大于16384行的数据仍然能导出到Excel,采用了Excel2007的DLL,第二个参数使用XlFileFormat.xlExcel8便解决这个问题。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值