У меня много файлов XLSX, и мне нужно добавить новую строку после последней в файл. Я использую OpenXML, и до сих пор я знаю, как открывать/создавать электронную таблицу, но мой поиск добавления новых строк в существующие файлы ничего не возвращал. Любые идеи?
OpenXML добавляет новую строку в существующий файл Excel
Ответ 1
Если все, что вам нужно сделать, это добавить пустую строку в конец, и вам все равно, существует ли строка в индексе строки, тогда для вас должно работать следующее:
public static void InsertRow(WorksheetPart worksheetPart)
{
SheetData sheetData = worksheetPart.Worksheet.GetFirstChild<SheetData>();
Row lastRow = sheetData.Elements<Row>().LastOrDefault();
if (lastRow != null)
{
sheetData.InsertAfter(new Row() { RowIndex = (lastRow.RowIndex + 1) }, lastRow);
}
else
{
sheetData.Insert(new Row() { RowIndex = 0 });
}
}
Ответ 2
Если вы используете OpenXML SDK 2.5 (Runtime) v4.0.30319, метод Insert
отсутствует, но вместо этого можно использовать InsertAt
следующим образом:
sheetData.InsertAt(new Row() { RowIndex = 0 }, 0);