使用Microsoft的OpenXML SDK有什麼方法可以使用範圍從DataSet插入到Excel中?OpenXML SDK - Excel範圍
以前,Excel API(Interop Assemblies)會讓你這樣做。現在,至少通過嘗試和讀取樣本,我發現的唯一方法是使用循環來創建每一行和單元格。
我已經看到一些第三方工具正在做這件事,但我希望它開箱即用。謝謝。
使用Microsoft的OpenXML SDK有什麼方法可以使用範圍從DataSet插入到Excel中?OpenXML SDK - Excel範圍
以前,Excel API(Interop Assemblies)會讓你這樣做。現在,至少通過嘗試和讀取樣本,我發現的唯一方法是使用循環來創建每一行和單元格。
我已經看到一些第三方工具正在做這件事,但我希望它開箱即用。謝謝。
忘掉使用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組件很多次都取得了巨大的成功和最小的代碼量。
所以沒有辦法做到這一點開箱即用?我在看DefinedName類,但不知道這會起作用。 (http://msdn.microsoft.com/en-us/library/ee841230.aspx) – user1005806
相信我,你不會想完成所有那些只是爲了完成別人已經完成的任務。沒有必要重新發明輪子。 – MDL
看看這個:http://stackoverflow.com/questions/643643/how-to-create-and-download-excel-document-using-asp-net – MDL
使用第三方工具有什麼問題?他們傾向於使你的工作更容易... – Nuffin