问题描述
我使用excel.ActiveWorkbook.SaveAs(strExcelFileName+".XLS",Excel.XlFileFormat.xlExcel9795,null,null,false,false,Excel.XlSaveAsAccessMode.xlNoChange,null,null,null,null);方法将SQLSERVER数据导出至EXCEL,刚开始我机器上装的是EXCEL2003,能正确导出后来我机器上装了EXCEL2007(但EXCEL2003依旧保留)后,导出就会报“HRESULT”错误,后来发现是使用Excel.XlFileFormat.xlExcel9795参数出现错误,请问xlExcel9795代表什么?为什么我装了EXCEL2007后就不能再用这个参数?但我EXCEL2003还在啊,而且COM引用的EXCEL.DLL也还是EXCEL2003的版本还有发觉EXCEL2003的XLS的SHEET表最高只支持6万5千行数据左右,请问如果导出的数据超过此界限后能自动生成第二个SHEET表,C#的代码应该怎么写?我之前导出单个EXCELSHEET表的代码是这样写的,请问要如何修改???privatevoiddoExport(DataSetds,stringstrExcelFileName)113{114115Excel.Applicationexcel=newExcel.Application();116("c:zn.xls",Excel.XlFileFormat.xlExcel9795,null,null,false,false,Excel.XlSaveAsAccessMode.xlNoChange,null,null,null,null);119120introwIndex=1;121intcolIndex=0;122123excel.Application.Workbooks.Add(true);124125126System.Data.DataTabletable=ds.Tables[0];127foreach(DataColumncolintable.Columns)128{129colIndex++;130excel.Cells[1,colIndex]=col.ColumnName;131}132133foreach(DataRowrowintable.Rows)134{135rowIndex++;136colIndex=0;137foreach(DataColumncolintable.Columns)138{139colIndex++;140excel.Cells[rowIndex,colIndex]=row[col.ColumnName].ToString();141}142}143excel.Visible=false;144excel.Sheets[0]="sss";145excel.ActiveWorkbook.SaveAs(strExcelFileName+".XLS",Excel.XlFileFormat.xlExcel9795,null,null,false,false,Excel.XlSaveAsAccessMode.xlNoChange,null,null,null,null);146147152excel.Quit();153excel=null;154155GC.Collect();//垃圾回收156}
解决方案
解决方案二:
判断行数,超过60000行就另开一个sheet再继续保存。
解决方案三:
请问具体代码应该如何写?引用1楼badtank的回复:
判断行数,超过60000行就另开一个sheet再继续保存。
解决方案四:
Excel._WorkbookxBk;//工作薄Excel._WorksheetxSt;//工作SheetxBk=myExcel.Workbooks.Add(true);xSt=(Excel._Worksheet)xBk.ActiveSheet;xSt.Name="Sheet1";新加一个Sheet1,继续60000以后的行。。