日期:2014-05-17  浏览次数:20959 次

怎么写大批量数据到EXCEL
我知道写数据是:l_xlSheet.Cells[l_Row,1]= l_DS.Tables [0].Rows [i].ItemArray [0]
但如果数据集是几万行的大数据量时,怎么写入效率才高呢?
谢谢了!

------解决方案--------------------
如果没有明确要求用xls,可以输出到csv文件中,用excel一样可以打开操作。csv的效率很高。
------解决方案--------------------
第一,几万行的数量量不算大哈,当然,如果你的数量影响到你的数据的可读性那建议你还是取一部分,生成一部分(这个部分可以是一个excel文件,也可以是一个excel的sheet)

第二,不建议你利用ms自带的excel组件,总是会报一些非正常的错误,如果03版本的excel建议你用NPOI来写入,如果是07及其以上的版本话建议你用myxls或者Epplus,效率和性能都非常的不错。
------解决方案--------------------
如果是数据库导出,建议用ADODB.Recordset,非常高效的,如果是逐一读出写入,确实很慢的。。。
------解决方案--------------------
如果仅仅是文字,没有图片之类的东西,使用oledb,比较快。
bool Result = false;
        string ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FileName + ";Extended Properties=\"Excel 8.0;HDR=no;IMEX=0\"";
        try
        {
            System.Data.OleDb.OleDbDataAdapter oledbda = new System.Data.OleDb.OleDbDataAdapter("Select * from [Sheet1$]", ConnectionString);
            _Contacts = new DataSet();
            oledbda.Fill(_Contacts);
            oledbda.Dispose();
            oledbda = null;
            Result = true;
        }
        catch { }
        return Result;