【问题标题】:How to store data to Excel from DataSet without going cell-by-cell?如何在不逐个单元格的情况下将数据从 DataSet 存储到 Excel?
【发布时间】:2010-10-29 10:05:28
【问题描述】:

重复What’s the simplest way to import a System.Data.DataSet into Excel?

在VS2008下使用c#,我们可以这样创建一个excel app,workbook,然后worksheet就好了:

Application excelApp = new Application();
Workbook excelWb = excelApp.Workbooks.Add(template);
Worksheet excelWs = (Worksheet)this.Application.ActiveSheet;

然后我们可以通过“excelWs.Cells[i,j]”访问每个单元格并毫无问题地写入/保存。但是,由于行/列数量众多,我们预计效率会下降。

有没有一种方法可以在不使用逐个单元格的方法的情况下将 DataSet 对象“数据绑定”到工作表中?我们看到的大多数方法在某个时候都会恢复为逐个单元格的方法。感谢您的任何建议。

【问题讨论】:

    标签: c# visual-studio-2008 excel dataset


    【解决方案1】:

    为什么不通过 OLEDB 提供程序来使用 ADO.NET?

    见:Tips for reading Excel spreadsheets using ADO.NET

    【讨论】:

      【解决方案2】:

      这是一个重复的问题。

      见:What's the simplest way to import a DataSet into Excel

      (答案是,使用 OleDbConnection 并从 Excel 中读取数据集)。

      【讨论】:

        【解决方案3】:

        将二维对象数组设置为 excel 范围更快,而不是逐个单元格。

        object[][] values = ...
        ws.Range("A1:F2000").Value = values;
        

        不过,OleDb 方式还是比上面的快很多。

        【讨论】:

          【解决方案4】:

          您还可以将 GridView 呈现为字符串并将结果作为 HTML 或 XLS 保存到客户端。如果使用 XLS 文件扩展名将数据与 Excel 关联,则在 Excel 中打开文件时会看到错误。它不会伤害任何东西,您的 HTML 数据将在 Excel 中打开并看起来很完美...

          【讨论】:

            猜你喜欢
            • 2023-04-05
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-11-20
            • 1970-01-01
            相关资源
            最近更新 更多