我做的是winform,导出excel要好几分钟,而且只能导一半,我同事用java写的,一下子就导出来了。 高手们帮我看一下。
Microsoft.Office.Interop.Excel.Application excelApp = new Application(); Microsoft.Office.Interop.Excel.Workbook wbook = null; Microsoft.Office.Interop.Excel.Sheets sheets =null; Microsoft.Office.Interop.Excel.Worksheet wkSheet = null; Microsoft.Office.Interop.Excel.Range range = null; Microsoft.Office.Interop.Excel.Range rangeWire = null; wbook = excelApp.Workbooks.Add(true); sheets = wbook.Worksheets; wkSheet = (Worksheet)sheets.get_Item(1); System.Windows.Forms.Application.DoEvents(); range = wkSheet.get_Range("A1", Missing.Value); rangeWire = wkSheet.get_Range("B1", Missing.Value); range.Value2 = "浙江"; rangeWire.Value2 = "某某线"; wkSheet.Cells[4, 1] = "时间"; for (int i = 0; i < arrayList.Count; i++) { wkSheet.Cells[4, i + 2] = arrayList[i]; int j=5; foreach(SubStationRealtimedata subdata in listData) { wkSheet.Cells[j, 1] = subdata.SendTime; wkSheet.Cells[j, i + 2] = subdata.CurrentPhaseA; j++; } } wkSheet.SaveAs("d:\\11.xls"); wbook.Close(); excelApp.Quit();
亲,你用这种ole automation方式,这种方式现在应该用的不多了,客户端上要安装office才可以,导出excel的时候,会启动excel进程的(但是功能比较强大)
2. 用npoi导出excel还是很方便的,也蛮快的,我平常是够用了
3. closeXml(也是开源的),据说性能更好
用了npoi速度非常快,感谢各位!
试一下NPOI看看会不会快些
用openxml去导出试试,楼上说的NPOI也可以试试的
如果只是导出简单的表格数据,什么 SDK 都不用,直接用 StreamWriter 写 .csv 文件。
NPOI或者Aspose.Cells都很快的,ole automation方式估计是创建一个sheet然后一格格填的,模拟手工,只是猜测哦,所以会慢。
感谢各位,谢谢!