Мне нужна ваша поддержка.Мне нужно открыть файл .xls с помощью c #, добавив около 100 тыс. Строк.Я попробовал несколько подходов, но все подходы приводят к ошибке памяти, кроме OpenXML с SAX-подходом.Этот работает для меня.Моя проблема в том, что я могу создать Excel с 100K строк с нуля (и это работает как шарм), но я не могу открыть файл xls, который, например, имеет первый ряд с заголовками, второй ряд с формулами,и предположим, что я должен добавить 100K строк из третьего ряда этого Excel.Это мой кодКогда я запускаю его, файл клонируется, но строки не добавляются ... не могли бы вы мне помочь?Спасибо
//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);