簡體   English   中英

如何使用EPPlus填充ExcelTable

[英]How do I populate an ExcelTable using EPPlus

我正在嘗試修改exisiting excel工作表。 確切地說,我想在工作表中存在的表中添加幾行(使用格式作為表創建)。 我試過了

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

但是這樣創建的'table'只是實際表的元數據,我不能為它添加行。 如果我試試

sheet.Cells[table.Address.Address.ToString()].LoadFromCollection(positions);

然后我沒有得到表的格式。

任何人都知道如何向表中添加行! 謝謝

我們在公司使用以下內容。 基本上這個想法是,對於您想要輸出的每個記錄,您創建一個數據的對象數組以加載到excel中,然后調用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;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM