使用Microsoft的OpenXML SDK,是否可以使用范围将数据集插入Excel?
以前,Excel API(互操作程序集)可让您执行此操作。现在,至少通过尝试并通读样本,我发现的唯一方法是使用循环创建每一行和单元格。
我已经看到了一些3rd Party工具可以做到这一点,但我想开箱即用。谢谢。
最佳答案
忘了使用互操作,您将不得不在本地安装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组件,并且取得了巨大的成功,并且代码量很少。