使用Open XML Format SDK 2.0 CTP创build时不保存文档

我想使用Open XML Format SDK 2.0创build基于模板的Excel文档。 我遵循本教程使用Open XML Format SDK 2.0 CT创build文档 。 我的问题是,我放入文档的行和单元格不会被保存。 当我打开文档时,它看起来就像模板一样。

我运行我的代码时不会引发exception。 我想我必须强制更改保存在文档中,但我不知道如何。

这是我的一些代码:

public static void GenerateExcelReportToDisk() { var factory = new Factory(); var generated = "result.xlsx"; var newFile = Util.GetReportTargetPath() + generated; var templateFile = Util.GetReportTemplatePath() + @"template.xlsx"; File.Copy(templateFile, newFile, true); using (var myWorkbook = SpreadsheetDocument.Open(newFile, true)) { var workbookPart = myWorkbook.WorkbookPart; var worksheetPart = workbookPart.WorksheetParts.First(); var sheetData = worksheetPart.Worksheet.GetFirstChild<SheetData>(); //Get data var data = factory.GetAllFixtures().Take(20); int rowIndex = 3; foreach (var fixture in data) { var pcRate = fixture.PCRate; var account = fixture.Charter != null ? fixture.Charter.Shortname : null; var region = fixture.Region != null ? fixture.Region.GroupName : null; //CreateContentRow is exactly like the tutorial linked above. var row = CreateContetRow(rowIndex, region, pcRate, account); rowIndex++; sheetData.AppendChild(row); } //Tried to add myWorkbook.WorkbookPart.Workbook.Save(); here, but it doesn't do anything myWorkbook.Close(); } 

好吧,我在一会儿之后就自己弄清楚了。 在这里发布答案,以便帮助某人(包括我自己):

myWorkbook.Close();上面的行中 add worksheetPart.Worksheet.Save();

就如此容易…