首页 新闻 会员 周边

C#如何将datatable 中的数据快速导入到Excel中

0
悬赏园豆:5 [已解决问题] 解决于 2012-09-05 09:24

以前采用的这种循环赋值的方法,当数据过多的时候就不能用了

//写入数值
for (int r = 0; r < a_tb.Rows.Count; r++)
{
for (int i = 0; i < a_tb.Columns.Count; i++)
{
worksheet.Cells[r + 3, i + 1] = a_tb.Rows[r][i];
}
System.Windows.Forms.Application.DoEvents();
 fileSaved = true;
}
maanshancss的主页 maanshancss | 菜鸟二级 | 园豆:303
提问于:2012-08-27 11:05
< >
分享
最佳答案
0

导出到Excel用NPOI很快很方便,不过不支持Excel2007及以上格式。

收获园豆:5
向往-SONG | 老鸟四级 |园豆:4853 | 2012-08-27 11:13

2007的可以使用EPPLUS

chenping2008 | 园豆:9836 (大侠五级) | 2012-08-27 11:17

你有没有现成的方法,急用的!

maanshancss | 园豆:303 (菜鸟二级) | 2012-08-27 11:19

@maanshancss: 

http://www.codeplex.com/npoi

NPOI的例子:

HSSFWorkbook hssfworkbook = new HSSFWorkbook();
ISheet sheet1 = hssfworkbook.CreateSheet("Sheet1");

sheet1.CreateRow(0).CreateCell(0).SetCellValue("This is a Sample");
int x = 1;
for (int i = 1; i <= 15; i++)
{
  IRow row = sheet1.CreateRow(i);
  for (int j = 0; j < 15; j++)
  {
    row.CreateCell(j).SetCellValue(x++);
  }
}
向往-SONG | 园豆:4853 (老鸟四级) | 2012-08-27 13:06

@向往-SONG: 这样不还是循环赋值? 时间仍是慢呀

maanshancss | 园豆:303 (菜鸟二级) | 2012-09-05 08:56

@maanshancss: 

循环不慢,主要是它创建的对象比officeAPI创建的对象简单,我正在用的导出几十万行数据都没问题,上万条都是瞬间。

向往-SONG | 园豆:4853 (老鸟四级) | 2012-09-05 09:12
其他回答(5)
0

最快的方法,选择全部,然后点击查询结果的第一个方格,然后ctrl+c,然后黏贴到Excel

拾梦小侠ด้้้ | 园豆:713 (小虾三级) | 2012-08-27 12:41
0

这个可以“手”动导入

花开花又落 | 园豆:357 (菜鸟二级) | 2012-08-27 13:47
0

一般在绑定到gridview上再导到excel上,速度还可以

jason2013 | 园豆:1998 (小虾三级) | 2012-08-27 17:01
0

程序上可以实现,不难,你博客园里搜一下,有很多解决方案。

jerry-Tom | 园豆:4077 (老鸟四级) | 2012-08-28 10:02
0

Spire.XLS for .NET控件也支持将datatable的数据快速导入Excel工作簿,具体代码教程可以参考他们官网上的教程。这是对应链接https://www.e-iceblue.cn/data/import-or-export-data.html

Tina_Tang | 园豆:346 (菜鸟二级) | 2021-06-24 10:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册