Tim*_*jin 7 c# excel structure list
谁能帮我?
我有一个结构
public struct Data
{
public string aaaAAA;
public string bbbBBB;
public string cccCCC;
...
...
}
Run Code Online (Sandbox Code Playgroud)
然后一些代码将数据引入List,creaitng新列表等.
我想把它传送到我这样做的excel,
for (int r = 0; r < newlist.Count; r++)
{
ws.Cells[row,1] = newlist[r].aaaAAA;
ws.Cells[row,2] = newlist[r].bbbBBB;
ws.Cells[row,3] = newlist[r].cccBBB;
}
Run Code Online (Sandbox Code Playgroud)
这有效,但速度很慢.我输入超过12,000行,我的结构有85个元素(所以每行有85列数据).
任何人都可以帮助更快?
谢谢,Timujin
Ter*_*nce 10
如果@juharr提到您可以使用OpenXML,请查看ClosedXML库以创建Excel文档,可在此处找到.
使用上面的示例,您可以使用以下代码:
var wb = new XLWorkbook();
var ws = wb.Worksheets.Add("Data_Test_Worksheet");
ws.Cell(1, 1).InsertData(newList);
wb.SaveAs(@"c:\temp\Data_Test.xlsx");
Run Code Online (Sandbox Code Playgroud)
如果你需要一个标题行,那么你只需要手动添加它们,使用类似下面的内容(然后你将开始在第2行上面插入你的行):
PropertyInfo[] properties = newList.First().GetType().GetProperties();
List<string> headerNames = properties.Select(prop => prop.Name).ToList();
for (int i = 0; i < headerNames.Count; i++)
{
ws.Cell(1, i + 1).Value = headerNames[i];
}
Run Code Online (Sandbox Code Playgroud)
在性能要求上,这似乎比迭代数组更有效.我已经做了一些基本的测试,并为包含2个属性的样本对象插入了20 000行,总共需要1秒钟.
归档时间: |
|
查看次数: |
7157 次 |
最近记录: |