读书人

ASP.NET DATASET 导出到excel速度很慢

发布时间: 2012-05-03 14:06:56 作者: rapoo

ASP.NET DATASET 导出到excel速度很慢
现在要把数据从dataset导出到excel 测试数据1W条,如果只导出小部分的话 速度还能接受,但是全部导出的话,
十几分钟倒不出来。网上虽然有导出的比较快的方法,但是导出的是伪excle文件,不能导入的。下面是我用的代码,也是网上找的:

C# code
        string excelName ="\\"+ DateTime.Now.ToString("yyyyMMddhhmmss") + ".xls";        string path = Server.MapPath("upfiles") + excelName;        Excel.Application excel = new Excel.Application();  //Execl的操作类        //读取保存目标的对象        Excel.Workbook bookDest = (Excel.WorkbookClass)excel.Workbooks.Add(Missing.Value);        Excel.Worksheet sheetDest = bookDest.Worksheets.Add(Missing.Value, Missing.Value, Missing.Value, Missing.Value) as Excel.Worksheet;//给工作薄添加一个Sheet           sheetDest.Rows.RowHeight = 20;        sheetDest.Name = strSheetName;        int rowIndex = 1;        int colIndex = 0;        excel.Application.Workbooks.Add(true);        foreach (DataColumn col in dt.Columns)        {            colIndex++;            sheetDest.Cells[1, colIndex] = col.ColumnName;        }        //导入数据行        foreach (DataRow row in dt.Rows)        {            rowIndex++;            colIndex = 0;            foreach (DataColumn col in dt.Columns)            {                colIndex++;                sheetDest.Cells[rowIndex, colIndex] = row[col.ColumnName].ToString();                            }        }        bookDest.Saved = true;        bookDest.SaveCopyAs(path);        excel.Quit();        excel = null;        GC.Collect();



麻烦给位提点建议,有代码更好,速度别太慢就行。


[解决办法]
没办法,除非你很清楚excel的数据结构,用流写入
[解决办法]
用多线程导吧 !

一个线程负责1000条!

[解决办法]
试试 NPOI或aspose.cells
[解决办法]
可能得用aspose.cells等组件。
[解决办法]
分批吧
[解决办法]
DataTable就这速度了,如果要速度好的,数据库有个自带的导出的功能,可以用sql语句实现.
[解决办法]
我们在程序中能做的只能是优化查询及导出.

读书人网 >asp.net

热点推荐