У меня есть таблица данных, и мне нужно преобразовать ее в таблицу Excel. Я преобразовал в MemoryStream, и мне нужен формат, в котором я могу принудительно загрузить (я думаю, что формат xml правильный), но в процессе происходит ошибка в функции XmlDocument.Load ().
MemoryStream stream = new MemoryStream();
using (SpreadsheetDocument foo = SpreadsheetDocument.Create(stream, SpreadsheetDocumentType.Workbook))
{
WorkbookPart workbookPart = foo.AddWorkbookPart();
workbookPart.Workbook = new Workbook();
workbookPart.Workbook.AddNamespaceDeclaration("r", "http://schemas.openxmlformats.org/officeDocument/2006/relationships");
Sheets sheets = workbookPart.Workbook.AppendChild<Sheets>(new Sheets());
string idPlanilha = "Report";
WorksheetPart worksheetPart = workbookPart.AddNewPart<WorksheetPart>(idPlanilha);
worksheetPart.Worksheet = new Worksheet(new SheetData());
Sheet planilha1 = new Sheet()
{
Id = idPlanilha,
SheetId = 1,
Name = "first"
};
sheets.Append(planilha1);
SheetData dadosPlanilha = worksheetPart.Worksheet.GetFirstChild<SheetData>();
UInt32Value indice = 1;
foreach (DataRow rowDados in dt.Rows)
{
...
}
worksheetPart.Worksheet.Save();
workbookPart.Workbook.Save();
foo.Close();
stream.Position = 0;
XmlDocument document = new XmlDocument();
StreamReader reader = new StreamReader(stream);
document.Load(reader); // The error that did out:" Invalid root level data. Line 1, position 1."
byte[] file = Encoding.Default.GetBytes(document.OuterXml);
return File(file, document.Name);
}