2013-03-13 17 views
9

Próbuję zmodyfikować arkusz roboczy exisiting excel. Właśnie chciałbym dodać kilka wierszy do tabeli istniejącej w arkuszu roboczym (utworzonej przy użyciu formatu jako tabeli). PróbowałemJak wypełnić ExcelTable przy użyciu EPPlus

var table = sheet.Tables["PositionsTable"]; 

ale „stół” w ten sposób tworzony jest tylko meta-dane o faktycznym stole, a ja nie mogę dodać wiersze do niego. Jeśli spróbuję, to nie mam formatowania tabeli.

Każdy wie, jak dodawać wiersze do stołu! Dzięki

Odpowiedz

3

W naszej firmie używamy czegoś podobnego. Zasadniczo chodzi o to, że dla każdego rekordu, który chcesz wyprowadzić, tworzymy tablicę obiektów danych, aby załadować do Excela, a następnie wywołać LoadFromArrays.

 using (var excelPkg = new ExcelPackage()) 
     { 
      var name = "Sheet1"; 
      //You will probably pass the columns to output into this function 
      var headerArray = new string[] { "Column1", "Column2" }; 
      var data = positions 
       .Select(i => headerArray.Select(h => GetValue(i, h)).ToArray()); 
      var ws = excelPkg.Workbook.Worksheets.Add(name); 
      ws.Cells["A1"].LoadFromArrays(
       ((object[])headerArray).ToSingleItemEnumerable().Union(data)); 
      ws.Row(1).Style.Font.Bold = true; //set header to bold 
      excelPkg.SaveAs(stream, "password"); 
     } 

    private static object GetValue(Position item, string field) 
    { 
     //Your logic goes here 
     return null; 
    } 

    public static IEnumerable<T> ToSingleItemEnumerable<T>(this T o) 
    { 
     yield return o; 
    } 
Powiązane problemy