[英]Export datatable to excel using EPPlus with additional data
我有一个要求我必须生成如下图所示的excel
我正在使用EPPlus dll,并且只能使用下面的C#代码直接将数据表导出到excel。
using (var package = new ExcelPackage(Template))
{
ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Product_Reports");
worksheet.Cells["A1"].LoadFromDataTable(dt, true, TableStyles.Medium1);
worksheet.Cells[worksheet.Dimension.Address].AutoFitColumns();
... remainig code
我如何添加标题“产品统计信息”和其他数据,例如“总计”,“售罄”等,如图所示?
eppplus网站上的示例应向您展示如何完成所有这些操作,但这是一个开始:
[TestMethod]
public void Table_Export_Test()
{
//http://stackoverflow.com/questions/31042901/export-datatable-to-excel-using-epplus-with-additional-data
//Throw in some data
var dtdata = new DataTable("tblData");
dtdata.Columns.Add(new DataColumn("Order no.", typeof (string)));
dtdata.Columns.Add(new DataColumn("Product name", typeof (int)));
dtdata.Columns.Add(new DataColumn("Name", typeof (int)));
for (var i = 0; i < 20; i++)
{
var row = dtdata.NewRow();
row[0] = i;
row[1] = i*10;
row[2] = i*100;
dtdata.Rows.Add(row);
}
var existingFile = new FileInfo(@"c:\temp\temp.xlsx");
if (existingFile.Exists)
existingFile.Delete();
using (var package = new ExcelPackage(existingFile))
{
var ws = package.Workbook.Worksheets.Add("Sheet1");
ws.Cells["A1"].Value = "Product Statistics";
ws.Cells[1, 1, 1, 6].Merge = true;
ws.Cells[3, 3].Value = "Total";
ws.Cells[3, 4].Value = "200";
ws.Cells[4, 3].Value = "Sold out";
ws.Cells[4, 4].Value = "50";
ws.Cells[1, 1, 1, 6].Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
ws.Cells[3, 3, 6, 3].Style.HorizontalAlignment = ExcelHorizontalAlignment.Left;
ws.Cells[3, 4, 6, 4].Style.HorizontalAlignment = ExcelHorizontalAlignment.Right;
ws.Cells[6, 1].LoadFromDataTable(dtdata, true);
ws.Column(1).Width = 13;
ws.Column(2).Width = 13;
ws.Column(3).Width = 13;
ws.Column(4).Width = 13;
package.Save();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.