gpt4 book ai didi

c# - 使用 ClosedXML 库将字典写入 Excel

转载 作者:行者123 更新时间:2023-12-04 21:48:13 29 4
gpt4 key购买 nike

我有一本字典,键是字符串,值是字符串列表。我想使用 ClosedXML 将其写入 Excel图书馆。

Dictionary<string, List<string>> data = new Dictionary<string, List<string>>();
List<string> list1 = new List<string>();
List<string> list2 = new List<string>();
List<string> list3 = new List<string>();
List<string> list4 = new List<string>();

list1.Add("a1","b1","c1");
list2.Add("a2","b2","c2");
list3.Add("a3","b3","c3");
list4.Add("a4","b4","c4");

data.Add("head1", list1);
data.Add("head2", list2);
data.Add("head3", list3);
data.Add("head4", list4);

所以你会看到键是“head1”、“head2”、“head3”、“head4”。
excel单元格中的预期结果应该像
head1   head2 head3 head4
a1 a2 a3 a4
b1 b2 b3 b4
c1 c2 c3 c4

如果我关注 this link closedXml , ws.Cell(1,1).Value = "Hello World!";根本不工作。似乎 Cell 的参数只接受 bool 值而不是 int。我的意思是链接中的示例可能是错误的。

有没有更好的方法来完成 C# 中的任务?

最佳答案

我按照链接并使用此代码将列和行写入电子表格,

  • 您可以将字符串值分配给单元格。
  • 使用两个不同的循环计数器,rowcol去电子表格填写字典。
  • 行和列计数器以 1
  • 开头
  • 每列填写完毕后,行计数器需要重置。
  • using ClosedXML.Excel; // ClosedXML used for this solution...
        Dictionary<string, List<string>> data = new Dictionary<string, List<string>>
    {
    { "head1", new List<string>() { "a1", "b1", "c1" } },
    { "head2", new List<string>() { "a2", "b2", "c2" } },
    { "head3", new List<string>() { "a3", "b3", "c3" } },
    { "head4", new List<string>() { "a4", "b4", "c4" } },
    };

    IXLWorkbook wb = new XLWorkbook();
    IXLWorksheet ws = wb.Worksheets.Add("Sample Sheet");

    int col = 1;
    foreach (var key in data.Keys)
    {
    int row = 1; // Starts with 1
    ws.Cell(row++, col).Value = key;

    foreach (var val in data[key])
    ws.Cell(row++, col).Value = val;

    col++;
    }

    wb.SaveAs(@"C:\temp\excel.xlsx");

    在 Excel 中输出
        head1   head2 head3 head4
    a1 a2 a3 a4
    b1 b2 b3 b4
    c1 c2 c3 c4

    关于c# - 使用 ClosedXML 库将字典写入 Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59725482/

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