【问题标题】:How to optimize exporting data to excel in Excel Interop?如何在 Excel Interop 中优化导出数据到 excel?
【发布时间】:2012-10-05 09:09:04
【问题描述】:

我正在使用 Excel 互操作从我的查询结果创建 Excel 工作簿。当有数千条记录时,生成工作簿需要很长时间。下面的代码是我如何填充单元格的示例。

RowNo = 1
For i = 1 To 4000
   ColNo = 1
   For j = 1 To 5
      Dim cell As excel.Range = ws.Cells(RowNo, ColNo)
      Dim value = j
      cell.Value = value
      ColNo = ColNo + 1
   Next
   RowNo = RowNo + 1
Next

上述代码的运行需要一分钟多的时间。如何优化它?

【问题讨论】:

    标签: excel export-to-excel excel-interop


    【解决方案1】:

    找到答案。您可以将数据写入数组,然后将数组写入 excel 范围,而不是逐个单元格地写入数据。见http://www.clear-lines.com/blog/post/Write-data-to-an-Excel-worksheet-with-C-fast.aspx

    private static void WriteArray(int rows, int columns, Worksheet worksheet)
    {
        var data = new object[rows, columns];
        for (var row = 1; row <= rows; row++)
        {
            for (var column = 1; column <= columns; column++)
            {
                data[row - 1, column - 1] = "Test";
            }
        }
    
        var startCell = (Range)worksheet.Cells[1, 1];
        var endCell = (Range)worksheet.Cells[rows, columns];
        var writeRange = worksheet.Range[startCell, endCell];
    
        writeRange.Value2 = data;
    }
    

    【讨论】:

      猜你喜欢
      • 2022-09-29
      • 2017-01-18
      • 2019-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      相关资源
      最近更新 更多