C# 使用Epplus将转发器数据复制到excel?
我正在使用Epplus将数据表写入excel文件,运行良好。我怎样才能为中继器做到这一点C# 使用Epplus将转发器数据复制到excel?,c#,asp.net,epplus,C#,Asp.net,Epplus,我正在使用Epplus将数据表写入excel文件,运行良好。我怎样才能为中继器做到这一点 using (ExcelPackage pck = new ExcelPackage()) { ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Demo"); ws.Cells["A1"].LoadFromDataTable(dt, true); Resp
using (ExcelPackage pck = new ExcelPackage())
{
ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Demo");
ws.Cells["A1"].LoadFromDataTable(dt, true);
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attachment; filename=ExcelDemo.xlsx");
Response.BinaryWrite(pck.GetAsByteArray());
}
Repeater类有一个属性
Data
,因此您必须将数据表分配给它。代码可能如下所示
repeater.DataSource = dt; //dt variable is same as in your example
repeater.DataBind();
关于为什么需要DataBind
,您可以读入:当您说“类对象”时,我想您指的是对象的集合?如果您绑定到中继器,这将是有意义的。如果是这样,为什么不使用LoadFromCollection
?像这样:
[TestMethod]
public void LoadFromCollection_Test()
{
//http://stackoverflow.com/questions/29958463/repeater-data-to-excel-using-epplus
//Throw in some data
var dataSet = new List<RowObject>();
for (var a = 0; a < 20; a++)
dataSet.Add(new RowObject
{
ColumnString = "Row " + a,
ColumnDateTime = DateTime.Now.AddHours(a)
});
//Clear the file
var newFile = new FileInfo(@"C:\Temp\Temp.xlsx");
if (newFile.Exists)
newFile.Delete();
var i = 0;
using (var package = new ExcelPackage(newFile))
{
var ws = package.Workbook.Worksheets.Add("Sheet1");
ws.Cells["A1"].LoadFromCollection(dataSet, true);
package.Save();
}
}
public class RowObject
{
public string ColumnString { get; set; }
public DateTime ColumnDateTime { get; set; }
}
[TestMethod]
公共void LoadFromCollection_Test()
{
//http://stackoverflow.com/questions/29958463/repeater-data-to-excel-using-epplus
//加入一些数据
var数据集=新列表();
对于(var a=0;a<20;a++)
dataSet.Add(新建行对象)
{
ColumnString=“行”+a,
ColumnDateTime=DateTime.Now.AddHours(a)
});
//清除文件
var newFile=newfileinfo(@“C:\Temp\Temp.xlsx”);
if(newFile.Exists)
newFile.Delete();
var i=0;
使用(var package=newexcelpackage(newFile))
{
var ws=package.Workbook.Worksheets.Add(“Sheet1”);
ws.Cells[“A1”].LoadFromCollection(数据集,true);
package.Save();
}
}
公共类行对象
{
公共字符串ColumnString{get;set;}
公共日期时间列日期时间{get;set;}
}
Acutally,我正在获取数据表,然后通过将它们存储到class对象中,然后将该项绑定到repeater,将其转换为不同的格式,这就是为什么我不能使用Epplus的“LoadFromDatatable”选项的原因。@siddhipur那么,您问题中的示例为什么要使用此函数呢?如果它是一类对象,请看这里