gpt4 book ai didi

c# - 列表<自定义>到Excel c#

转载 作者:太空狗 更新时间:2023-10-29 20:13:48 25 4
gpt4 key购买 nike

谁能帮帮我?

我有一个结构

    public struct Data
{

public string aaaAAA;
public string bbbBBB;
public string cccCCC;
...
...
}

然后是一些代码将数据引入列表,创建新列表等。

然后我想将它传输到 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;
}

这可行,但速度非常慢。我输入了超过 12,000 行,我的结构有 85 个元素(因此每行有 85 列数据)。

谁能帮助加快速度??

谢谢,铁木真

最佳答案

如果@juharr 提到您能够使用 OpenXML,请查看用于创建 Excel 文档的 ClosedXML 库,找到 here .

使用上面的示例,您可以使用以下代码:

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");

如果您需要标题行,那么您只需手动添加这些行,使用类似下面的内容(然后您将从第 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];
}

在性能要求上,这似乎比遍历数组更高效。我已经完成了一些基本测试,并为包含 2 个属性的示例对象插入 20 000 行,总共花费了 1 秒。

关于c# - 列表<自定义>到Excel c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17321958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com