OpenXML добавляет новую строку в существующий файл Excel

У меня много файлов XLSX, и мне нужно добавить новую строку после последней в файл. Я использую OpenXML, и до сих пор я знаю, как открывать/создавать электронную таблицу, но мой поиск добавления новых строк в существующие файлы ничего не возвращал. Любые идеи?

Ответ 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);