Я пытался заставить это работать почти 3 недели. Предполагается, что код создаст документ Excel с новым именованным листом для каждого элемента, передаст данные объекта на лист. К сожалению, он дублирует данные на всех листах.
SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create
(filepath, SpreadsheetDocumentType.Workbook);
// Add a WorkbookPart to the document.
WorkbookPart workbookpart = spreadsheetDocument.AddWorkbookPart();
workbookpart.Workbook = new Workbook();
// Add a WorksheetPart to the WorkbookPart.
WorksheetPart worksheetPart = workbookpart.AddNewPart<WorksheetPart>();
worksheetPart.Worksheet = new Worksheet();
// Add Sheets to the Workbook
Sheets sheets = workbookpart.Workbook.
AppendChild(new Sheets());
// Append a new worksheet and associate it with the workbook.
SheetData sheetData = worksheetPart.Worksheet.AppendChild(new SheetData());
foreach (Town temp in CampaignTowns)
{
// Constructing header
Row row = new Row();
row = CreateContentRow(temp, sheetData);
// Insert the header row to the Sheet Data
//sheetData.AppendChild(row);
Sheet sheet = new Sheet()
{
Id = workbookpart.GetIdOfPart(worksheetPart),
SheetId = TempSheetId,
Name = temp.getName()
};
TempSheetId++;
sheets.Append(sheet);
sheetData = new SheetData();
}
//Save worksheet part
worksheetPart.Worksheet.Save();
workbookpart.Workbook.Save();
// Close the document.
spreadsheetDocument.Close();