【问题标题】:OpenXML SDK - Excel RangesOpenXML SDK - Excel 范围
【发布时间】:2012-01-21 02:58:51
【问题描述】:

使用 Microsoft 的 OpenXML SDK 是否可以使用范围从 DataSet 插入 Excel?

以前,Excel API(互操作程序集)可以让您执行此操作。现在,至少通过尝试和阅读示例,我发现的唯一方法是使用循环来创建每一行和每个单元格。

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

【问题讨论】:

  • 使用第三方工具有什么问题?它们往往会让你的工作更轻松......

标签: c# excel openxml-sdk


【解决方案1】:

忘记使用互操作,您必须在本地安装 excel。我用过的最好的 3rd 方工具是 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 组件并取得了巨大的成功并且代码量最少。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-18
  • 1970-01-01
  • 2011-02-09
  • 2010-11-03
相关资源
最近更新 更多