Excel Open XML-Fehler: "wurde nicht lesbarer Inhalt" beim erstellen einfaches Beispiel

Ich bin immer mit dem vieldeutigen "excel wurde nicht lesbarer Inhalt" Fehler wenn ich versuche das Dokument zu öffnen mit dem folgenden code erzeugt:

public void GenerateWorkbookFromDB()
{
    //Make a copy of the template file
    File.Copy(HttpContext.Current.Server.MapPath("ReportTemplate/test.xlsx"), HttpContext.Current.Server.MapPath("Reports/test.xlsx"), true);

    //Open up the copied template workbook
    using (SpreadsheetDocument myWorkbook = SpreadsheetDocument.Open(HttpContext.Current.Server.MapPath("Reports/test.xlsx"), true))
    {
        WorkbookPart workbookPart = myWorkbook.WorkbookPart;
        WorksheetPart worksheetPart = workbookPart.WorksheetParts.First();
        string origninalSheetId = workbookPart.GetIdOfPart(worksheetPart);

        WorksheetPart replacementPart = workbookPart.AddNewPart<WorksheetPart>();
        string replacementPartId = workbookPart.GetIdOfPart(replacementPart);

        OpenXmlReader reader = OpenXmlReader.Create(worksheetPart);
        OpenXmlWriter writer = OpenXmlWriter.Create(replacementPart);

        Row r = new Row();
        Cell c = new Cell();
        CellValue v = new CellValue();
        v.Text = "test";
        c.Append(v);

        while (reader.Read())
        {
            if (reader.ElementType == typeof(SheetData))
            {
                if (reader.IsEndElement)
                    continue;
                writer.WriteStartElement(new SheetData());

                for (int row = 0; row < 20; row++)
                {
                    writer.WriteStartElement(r);

                    for (int col = 0; col < 4; col++)
                    {
                        writer.WriteElement(c);
                    }

                    writer.WriteEndElement();
                }

                writer.WriteEndElement();
            }
            else
            {
                if (reader.IsStartElement)
                    writer.WriteStartElement(reader);
                else if (reader.IsEndElement)
                    writer.WriteEndElement();
            }
        }
        reader.Close();
        writer.Close();

        try
        {
            Sheet sheet = workbookPart.Workbook.Descendants<Sheet>().Where(s => s.Id.Value.Equals(origninalSheetId)).First();
            sheet.Id.Value = replacementPartId;
            workbookPart.DeletePart(worksheetPart);
        }
        catch (Exception ex) { }
    }
}

jede Hilfe oder Anregungen wird sehr geschätzt! 😀

Wo genau bekommst du diesen Fehler? Wenn man sich das xlsx-Format in Office-Open-Xml-Tools, was ist die xml an diesem besonderen Ort?
Wenn ich versuche das Dokument zu öffnen, nachdem es Aufrufe GenerateWorkbookFromDB() in Excel gibt mir die Fehlermeldung. Es gibt mir die Möglichkeit, es trotzdem zu öffnen, indem Sie auf "ja". Ich will nicht, dass die Benutzer meiner Anwendung haben, klicken Sie auf, dass jedes mal, obwohl 😀

InformationsquelleAutor Daniel | 2011-05-16

Schreibe einen Kommentar