Я хочу создать рабочую книгу с данными из моей программы, поэтому я начал с пустой (код ниже). Я попытался с и без строк (код имеет закомментированный код строк), изменив порядок нескольких строк, но ничего не работает.
Я взял код с Docs.Microsoft.com / здесь и http://www.dispatchertimer.com/tutorial/how-to-create-an-excel-file-in-net-using-openxml-part-1-basics/ (образцы все примерно одинаковые)
Когда я пытаюсь открыть книгу в Excel я получаю ошибку: мы обнаружили проблему с некоторым содержимым в 'Foo.xlsx'. Вы хотите, чтобы мы попытались восстановить столько, сколько мы можем? Если вы доверяете источнику этой книги, нажмите Да.
Я использовал. NET Core (хотя я мог бы также воспроизвести его с помощью. NET Framework) и DocumentFormat.Open Xml Версия: 2.10. 0
Что я делаю не так?
Спасибо
Jordi
using (SpreadsheetDocument document = SpreadsheetDocument.Create("D:\\Diff\\Sample2\\Foo.xlsx", SpreadsheetDocumentType.Workbook, false))
{
// A SpreadsheetDocument must have at least a WorkbookPart and a WorksheetPart
WorkbookPart workbookPart = document.AddWorkbookPart();
workbookPart.Workbook = new DocumentFormat.OpenXml.Spreadsheet.Workbook(); // Name ambiguity...
WorksheetPart worksheetPart = workbookPart.AddNewPart<WorksheetPart>();
worksheetPart.Worksheet = new Worksheet(new SheetData());
Sheets sheets = workbookPart.Workbook.AppendChild(new Sheets());
Sheet sheet = new Sheet() { Id = workbookPart.GetIdOfPart(worksheetPart), SheetId = 1, Name = "Test" };
sheets.Append(sheet);
SheetData sheetData = worksheetPart.Worksheet.AppendChild(new SheetData());
////Row row = new Row();
////row.Append(
//// ConstructCell("Id", CellValues.String),
//// ConstructCell("Name", CellValues.String),
//// ConstructCell("Birth Date", CellValues.String),
//// ConstructCell("Salary", CellValues.String));
////// Insert the header row to the Sheet Data
////sheetData.AppendChild(row);
////uint id = 1;
////foreach (Spreadsheet spreadsheet in m_sheets.Values)
////{
//// Debug.Assert(spreadsheet != null);
//// spreadsheet.SaveToExcel(workbookPart, sheets, id++);
////}
workbookPart.Workbook.Save();
document.Close();
}