我正在尝试修改exisiting excel工作表.确切地说,我想在工作表中存在的表中添加几行(使用格式作为表创建).我试过了
var table = sheet.Tables["PositionsTable"];
Run Code Online (Sandbox Code Playgroud)
但是这样创建的'table'只是实际表的元数据,我不能为它添加行.如果我试试
sheet.Cells[table.Address.Address.ToString()].LoadFromCollection(positions);
Run Code Online (Sandbox Code Playgroud)
然后我没有得到表的格式.
任何人都知道如何向表中添加行!谢谢
我们公司使用类似以下的东西。基本上,这个想法是,对于要输出的每条记录,创建一个数据对象数组以加载到 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;
}
Run Code Online (Sandbox Code Playgroud)