Linq to Excel支持多个选项卡

15 浏览
0 Comments

Linq to Excel支持多个选项卡

这个问题已经在这里有答案了:

如何在C#中创建Excel(.XLS和.XLSX)文件而不安装Microsoft Office?

我使用Entity Framework和Linq填充我的网格视图。

我想要从Linq中获取与我从Linq获得的相同数据的excel。

同样,在同一excel工作表中的第二个选项卡应来自另一个Linq查询。

最容易和最好的方法是什么?

admin 更改状态以发布 2023年5月25日
0
0 Comments

这里有两个步骤。第一个是将你的 Linq 集合序列化为 CSV 格式。你可以像这样序列化可枚举的方法:

public static string ToCsv(string separator, IEnumerable objectlist)
{
    Type t = typeof(T);
    FieldInfo[] fields = t.GetFields();
    string header = String.Join(separator, fields.Select(f => f.Name).ToArray());
    StringBuilder csvdata = new StringBuilder();
    csvdata.AppendLine(header);
    foreach (var o in objectlist) 
        csvdata.AppendLine(ToCsvFields(separator, fields, o));
    return csvdata.ToString();
}

这个方法不能帮助你处理深层对象,但是可以把你的数据序列化为 CSV。 第二个阶段是构建 XSLX 格式的文件(假设两个 CSV 文件不够)。为此,我建议使用微软的 OpenXML SDK 从 CSV 字符串构建两个工作表。另外,我还喜欢 这个答案 来构建 Excel 电子表格。

0