2011-07-12 38 views
11

XLSXファイルがたくさんあるので、ファイルの最後の行の後に新しい行を追加する必要があります。私はOpenXMLを使用していますが、これまでにスプレッドシートを作成/作成する方法はわかっていましたが、既存のファイルに新しい行を追加する検索では何も返されませんでした。何か案は ?OpenXML既存のExcelファイルに新しい行を追加する

答えて

12

すべてを行う必要が最後に空白行を追加して、行がすでに行のインデックス位置にある場合、あなたは気にしないなら、あなたのために働く必要があり、次

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

おかげで、それが働きました。 – james

+2

OpenXML SDK 2.5(ランタイム)v4.0.30319の場合、Insertメソッドは存在しません。したがって、InsertAtは次のように使用されます:'sheetData.InsertAt(new Row(){RowIndex = 0}、0); ' –

+2

@JanisS。コメントはかなり関連しているようだ。たぶんそれは答えに追加することができますか? – Panzercrisis

4

の場合あなたは何Insert方法はありませんv4.0.30319のOpenXML SDK 2.5(ランタイム)を使用しますが、次のように1の代わりにInsertAtを使用することができます。

sheetData.InsertAt(new Row() { RowIndex = 0 }, 0); 
関連する問題