我需要你的支持。 我需要用c#打开一个.xls文件,添加大约100k行。 我尝试了几种方法,但除了带有SAX方法的OpenXML之外,所有方法都会让我陷入内存错误。这个对我有用。 我的问题是我能够从头开始创建100K行的excel(它就像魅力一样),但是我无法打开文件xls,例如第一行有标题,第二行使用公式的行,并假设我要从此Excel的第三行添加100K行。 这是我的代码。 当我运行它时,文件被克隆但没有添加行...你能帮我吗? 感谢
//copy of file
String str_IntermidiateXLSPath = "c:\\testXls3.xlsx";
File.Copy("c:\\testXls.xlsx", str_IntermidiateXLSPath, true);
using (SpreadsheetDocument SpreadsheetDocumentObj = SpreadsheetDocument.Open(str_IntermidiateXLSPath, true))
{
WorkbookPart workbookpart = null;
WorksheetPart worksheetpart = null;
OpenXmlWriter writer = null;
Cell cell = null;
Row row = null;
SpreadsheetDocumentObj.CompressionOption = CompressionOption.SuperFast;
workbookpart = SpreadsheetDocumentObj.WorkbookPart;
worksheetpart = workbookpart.WorksheetParts.First();
writer = OpenXmlWriter.Create(worksheetpart);
writer.WriteStartElement(new Worksheet());
writer.WriteStartElement(new SheetData());
//starting row
for (int i = 3; i < 80; i++)
{
row = new Row();
for (int j = 0; j < 10; j++)
{
cell = new Cell();
row.Append(cell);
cell.DataType = CellValues.InlineString;
cell.InlineString = new InlineString { Text = new Text { Text = "XXX" } };
}
writer.WriteElement(row);
}
writer.WriteEndElement();
writer.WriteEndElement();
writer.Close();
workbookpart.Workbook.Save();
SpreadsheetDocumentObj.Close();
}
Process.Start(str_IntermidiateXLSPath);