当前位置:  开发笔记 > 编程语言 > 正文

使用C#写入Excel文件的最佳和最快方法是什么?

如何解决《使用C#写入Excel文件的最佳和最快方法是什么?》经验,为你挑选了1个好方法。

我正在尝试使用OLEDB写入excel文件(没有自动化).我从其他应用程序获得了大约500行数据,然后使用"INSERT INTO .."查询逐个写入Excel文件.我确信从其他应用程序读取数据没有延迟.我查了一下.在大约3分钟内写入500行的excel文件所花费的总时间.这太多了.这绝对是因为文件写入操作.

什么是使这种速度快的最佳方法?我应该使用其他一些技巧写作吗?我应该尝试一种自动化技术吗?

http://support.microsoft.com/kb/306023 此链接显示了许多技术,但不确定使用哪种技术.



1> Fry..:

如果你可以将COM转换为excel,你可以通过COM直接从excel查询,或创建一个数据数组并将其直接放入等于数组大小的范围内.尽管excel不适合小型COM调用,但它很少用于大量的COM调用:)

DataSet ds = new DataSet();
          da.Fill(ds);
          int width = ds.Tables[0].Columns.Count;
          int height = ds.Tables[0].Rows.Count;
          object[,] retList = new object[height, width];
          for (int i = 0; i < height; i++)
          {
            DataRow r = ds.Tables[0].Rows[i];
            for (int j = 0; j < width; j++)
              retList[i, j] = r.ItemArray[j];
          }
          Excel.Range range = mWs.get_Range(destination, mWs.Cells[destination.Row + height - 1, destination.Column + width - 1]);
          range.set_Value(Missing.Value, retList);
          System.Runtime.InteropServices.Marshal.ReleaseComObject(range);
          range = null;

这是一个获取数据并在一次COM调用中将其作为数组插入excel的示例

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有