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

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

2 ответа

Решение

Если все, что вам нужно сделать, это добавить пустую строку в конец, и вас не волнует, существует ли уже строка в индексе строки, то для вас должно работать следующее:

    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 });
        }
    }

Если вы используете OpenXML SDK 2.5 (Runtime) v4.0.30319, то нет Insert метод, но можно использовать InsertAt вместо этого следующим образом:

sheetData.InsertAt(new Row() { RowIndex = 0 }, 0);
Другие вопросы по тегам