OpenXML SDK – Excel范围

有了微软的OpenXML SDK,有没有办法使用范围从DataSet插入Excel?

以前,Excel API(Interop Assemblies)会让你这样做。 现在,至less通过尝试和读取样本,我发现的唯一方法是使用循环来创build每一行和单元格。

我已经看到了一些第三方工具,但是我喜欢它。 谢谢。

忘了使用interop,你将不得不在本地安装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组件,取得了巨大的成功,代码量也很less。