rzt_tao 发表于 2017-10-12 10:39:38

DataTable快速导到Excel方法

本帖最后由 rzt_tao 于 2017-10-12 12:18 编辑

没有格式要求,想快速导出DataTable数据到Excel可以采用以下方式实现,开发人员在调试过程中有时候也可以用来记录比较。100w的数据导出也就1~2秒的时间。
void Main()
{
        DataTable dataTable =new DataTable();
       
        for(int i=0;i<10;i++)
        {
                dataTable.Columns.Add("col"+i);
        }
        for(int i=0;i<1000000;i++)
        {
                var dr=dataTable.NewRow();
                foreach(DataColumn col in dataTable.Columns)
                {
                        dr=col.ColumnName+i;
                }
                dataTable.Rows.Add(dr);
        }
        string fileName="excel.csv";
        Stopwatch watch=new Stopwatch();
        watch.Start();
        ExportToExcel(dataTable,fileName);
        watch.Stop();
        ("导出完毕,用时:"+watch.Elapsed).Dump();
}
public static void ExportToExcel(DataTable dataTable,string fileName,bool isOpen=false)
{
        var lines = new List<string>();
        string[] columnNames = dataTable.Columns
                                                                        .Cast<DataColumn>()
                                                                        .Select(column => column.ColumnName)
                                                                        .ToArray();
        var header = string.Join(",", columnNames);
        lines.Add(header);
        var valueLines = dataTable.AsEnumerable()
                                        .Select(row => string.Join(",", row.ItemArray));            
        lines.AddRange(valueLines);
        File.WriteAllLines(fileName,lines);
        if(isOpen)
                Process.Start(fileName);
}




页: [1]
查看完整版本: DataTable快速导到Excel方法