OpenXML SDK - Excel Ranges

本文关键字:Ranges Excel SDK OpenXML | 更新日期: 2023-09-27 18:20:50

使用Microsoft的OpenXML SDK,是否有任何方法可以使用范围从数据集插入Excel?

以前,Excel API(互操作程序集)允许您执行此操作。现在,至少通过尝试和阅读样本,我找到的唯一方法是使用循环来创建每一行和单元格。

我见过一些第三方工具这样做,但我希望它开箱即用。谢谢

OpenXML SDK - Excel Ranges

忘记使用interop,您必须在本地安装excel。我在excel中使用过的最好的第三方工具是Gembox Spreedsheet,它是免费的:

http://www.gemboxsoftware.com/

网站上的"支持"选项卡中有关于如何使用该软件的完整文章。以下是一个示例,说明从数据集向excel插入数据是多么容易:

// Create new ExcelFile.
ExcelFile ef2 = new ExcelFile();
// Imports all the tables from DataSet to new file.
foreach (DataTable dataTable in dataSet.Tables)
{
    // Add new worksheet to the file.
    ExcelWorksheet ws = ef2.Worksheets.Add(dataTable.TableName);
    // Change the value of the first cell in the DataTable.
    dataTable.Rows[0][0] = "This is new file!";
    // Insert the data from DataTable to the worksheet starting at cell "A1".
    ws.InsertDataTable(dataTable, "A1", true);
}
// Save the file to XLS format.
ef2.SaveXls("DataSet.xls");

您可以使用openXML读取和写入文件,如下所示:

ExcelFile ef = new ExcelFile();
// Loads OpenXML file.
ef.LoadXlsx("filename.xlsx", XlsxOptions.None);
// Selects first worksheet.
ExcelWorksheet ws = ef.Worksheets[0];
// Change the value of the cell "A1".
ws.Cells["A1"].Value = "Hello world!";
// Saves the file in OpenXML format.
ef.SaveXlsx("NewFile.xlsx")

我已经使用过这个.Net组件很多次了,非常成功,而且代码量很小。