• DataTable快速导到Excel方法


    DataTable快速导到Excel方法

    2017年10月12日 12:19:51 涛神-Dev 阅读数 1309

     版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012097590/article/details/78213452

    没有格式要求,想快速导出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]=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);
    }
    
    
  • 相关阅读:
    BZOJ 1007 HNOI2008 水平可见的直线
    BZOJ 3155 Preprefix sum
    BZOJ 1036 ZJOI2008 树的统计
    BZOJ 1096 ZJOI2007 仓库建设
    BZOJ 1012 JSOI2008 最大数maxnumber
    BZOJ 1001 狼抓兔子
    BZOJ 1046 HAOI 上升序列
    [POI2015]PUS
    [NOI2011]道路修建
    POI 2015 KIN
  • 原文地址:https://www.cnblogs.com/grj001/p/12224984.html
Copyright © 2020-2023  润新知