C#, Schreiben XLSX mit OpenXmlWriter und Open XML SDK
In C# das folgende Programm kompiliert und läuft, aber es muss nicht alles schreiben, was in der excel-Ausgabe-Datei.
Ich habe es zu arbeiten, ohne die OpenXmlWriter
aber ich fing an zu laufen, aus dem Speicher, so dass ich zum wechseln der OpenXmlWriter
nach dieser http://blogs.msdn.com/b/brian_jones/archive/2010/06/22/writing-large-excel-files-with-the-open-xml-sdk.aspx
class Program
{
static void Main(string[] args)
{
File.Copy("book.xlsx", "output.xlsx", true);
WriteValuesSAX("output.xlsx", 10, 10);
}
static void WriteValuesSAX(string filename, int numRows, int numCols)
{
using (SpreadsheetDocument myDoc =
SpreadsheetDocument.Open(filename, true))
{
WorkbookPart workbookPart = myDoc.WorkbookPart;
WorksheetPart worksheetPart = workbookPart.WorksheetParts.First();
OpenXmlWriter writer = OpenXmlWriter.Create(worksheetPart);
Row r = new Row();
Cell c = new Cell();
CellValue v = new CellValue("Test");
c.AppendChild(v);
writer.WriteStartElement(new SheetData());
for (int row = 0; row < numRows; row++)
{
writer.WriteStartElement(r);
for (int col = 0; col < numCols; col++)
{
writer.WriteElement(c);
}
writer.WriteEndElement();
}
writer.WriteEndElement();
writer.Close();
}
}
}
Warum nicht alles schreiben, was ausgegeben?
Können Sie teilen Sie Ihre code
Ich zog, dass von der ursprünglichen Quelle, wie ich konnte nicht Sinn machen, warum er da war.
Weil es aktualisiert die Werte.
Ich möchte nicht, die Werte zu aktualisieren, möchte ich das schreiben von Werten. Aber ich habe es funktioniert durch das hinzufügen dieser
Dieses tutorial zeigt Ihnen, wie Sie openxmlwriter von Grund auf, es sind u. A. das schreiben Zahl Typ und sharedstring Typ codeproject.com/Articles/877791/...
to close the reader and writer and replace the original worksheet part with the replacement part.
?Ich zog, dass von der ursprünglichen Quelle, wie ich konnte nicht Sinn machen, warum er da war.
Weil es aktualisiert die Werte.
Ich möchte nicht, die Werte zu aktualisieren, möchte ich das schreiben von Werten. Aber ich habe es funktioniert durch das hinzufügen dieser
writer.WriteStartElement(new Worksheet());
oben new SheetData()
Dieses tutorial zeigt Ihnen, wie Sie openxmlwriter von Grund auf, es sind u. A. das schreiben Zahl Typ und sharedstring Typ codeproject.com/Articles/877791/...
InformationsquelleAutor Snæbjørn | 2012-05-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich verstehe das nicht gut genug, aber ich habe es funktioniert.
Hier ist, was ich am Ende mit.
Merke ich, hat
writer.WriteStartElement(new Worksheet());
und anderenwriter.WriteEndElement();
Fand ich das richtige xml-format hier: http://msdn.microsoft.com/en-us/library/gg278309.aspx
Ist
Also ich geöffnet (entpackt) die xlsx-Datei und navigiert zu output.xlsx\xl\worksheets\sheet1.xml und sah, dass ich fehlte die
<x:worksheet>
.InformationsquelleAutor Snæbjørn
Mithilfe der obige code gibt mir die Fehlermeldung: "von Excel wurde nicht lesbarer Inhalt" in Excel 2007.
Mithilfe der Informationen, die von hier aus how-to-richtig-verwenden-openxmlwriter-zu-schreiben-groß-excel-Dateien und ändern den code beim hinzufügen von Spalten die folgenden entfernt den Fehler.
InformationsquelleAutor pblack