使用 OpenXML 后打开 Excel 时遇到错误

问题描述 投票:0回答:1

我们正在使用 OpenXML 生成 Excel 文件,并尝试使用此代码,但在尝试打开 Excel 文件时出现错误:

“test.xslx”中的某些内容有问题。如果您想恢复,请告诉我们。

代码:

public byte[] ExportDatatoExcel()
{
    MemoryStream memoryStream = new MemoryStream();

    SpreadsheetDocument spreadsheet = SpreadsheetDocument.Create(memoryStream, DocumentFormat.OpenXml.SpreadsheetDocumentType.Workbook);
    WorkbookPart workbookPart = spreadsheet.AddWorkbookPart();

    workbookPart.Workbook = new Workbook();
    Sheets sheets = workbookPart.Workbook.AppendChild<Sheets>(new Sheets());

    // OpenSheet
    WorksheetPart worksheetPart = workbookPart.AddNewPart<WorksheetPart>();
    worksheetPart.Worksheet = new Worksheet();
    var sheet = new Sheet() { Id = workbookPart.GetIdOfPart(worksheetPart), SheetId = 1, Name = "test" };
    sheets.Append(sheet);

    OpenXmlWriter DataWriter = OpenXmlWriter.Create(worksheetPart);

    // getting error because of writing to worksheet
    DataWriter.WriteStartElement(worksheetPart.Worksheet);
 
    DataWriter.WriteStartElement(new SheetData());
    DataWriter.WriteEndElement();

    DataWriter.Close();

    worksheetPart = null;
    workbookPart.Workbook.Save();

    spreadsheet.Save();
    spreadsheet.Close();

    memoryStream.Position = 0;

    return memoryStream.ToArray();
}

我在尝试打开下载的文件时遇到问题。当我尝试改变这条线时

DataWriter.WriteStartElement(worksheetPart.Worksheet); 

DataWriter.WriteStartElement(new Worksheet());

它工作正常,但是当我尝试检查

worksheetpart
实例时,它显示
Worksheet
属性为“System.IO 异常”。

请提出问题可能是什么

c# .net excel openxml openxml-sdk
1个回答
0
投票

我尝试了这一行的更改,它的工作没有任何问题。 更改了以下行:

 worksheetPart.Worksheet = new Worksheet(); to

 worksheetPart.Worksheet = new Worksheet(new SheetData());
© www.soinside.com 2019 - 2024. All rights reserved.