2011-07-12 57 views
11

Tengo muchos archivos XLSX y necesito agregar una nueva fila después de la última en el archivo. Estoy usando OpenXML y hasta ahora sé cómo abrir/crear hojas de cálculo, pero mi búsqueda para agregar nuevas filas a archivos existentes no arrojó nada. Algunas ideas ?OpenXML agrega una nueva fila al archivo existente de Excel

Respuesta

12

Si todo lo que tiene que hacer es añadir una fila en blanco hasta el final y que no les importa si ya existe una fila en el índice de la fila, entonces el siguiente debe funcionar para usted:

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

gracias, funcionó. – james

+2

Para OpenXML SDK 2.5 (Runtime) v4.0.30319 no hay método Insertar, por lo tanto, se utiliza InsertAt de la siguiente manera: 'sheetData.InsertAt (new Row() {RowIndex = 0}, 0);' –

+2

@JanisS. El comentario de s parece bastante relevante. Tal vez se puede agregar a la respuesta? – Panzercrisis

4

Si utiliza OpenXML SDK 2.5 (tiempo de ejecución) v4.0.30319 no hay Insert método, pero uno puede utilizar InsertAt lugar de la siguiente manera:

sheetData.InsertAt(new Row() { RowIndex = 0 }, 0); 
Cuestiones relacionadas