C# では、次のプログラムはコンパイルおよび実行されますが、Excel 出力ファイルには何も書き込まれません。
なしで動作しましたが、メモリが不足し始めたので、これに従ってにOpenXmlWriter
切り替える必要がありますhttp://blogs.msdn.com/b/brian_jones/archive/2010/06/22/writing-large-excel -files-with-the-open-xml-sdk.aspxOpenXmlWriter
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();
}
}
}
出力に何も書き込まないのはなぜですか?