具有多个选项卡的 Linq to Excel [重复]

Posted

技术标签:

【中文标题】具有多个选项卡的 Linq to Excel [重复]【英文标题】:Linq to Excel with multiple tabs [duplicate] 【发布时间】:2013-08-16 11:15:03 【问题描述】:

我使用 Entity Framework 和 Linq 来填充我的网格视图。 我想在 Excel 中获得从 Linq 获得的相同数据。 此外,同一个 Excel 工作表中的第二个选项卡应该来自另一个 Linq 查询。

什么是最简单和最好的方法?

【问题讨论】:

我喜欢epplus.codeplex.com 【参考方案1】:

这有两个部分。第一个是将您的 linq 集合序列化为 CSV。你可以像这样序列化一个可枚举的方法:

public static string ToCsv<T>(string separator, IEnumerable<T> 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 格式(假设 2 个 CSV 还不够)。为此,我建议来自 Microsoft 的 the Open XML SDK 从您的 CSV 字符串构建两个工作表。我也喜欢 this answer 用于构建 Excel 电子表格。

【讨论】:

以上是关于具有多个选项卡的 Linq to Excel [重复]的主要内容,如果未能解决你的问题,请参考以下文章

仅使用一个视图控制器的具有多个选项卡的选项卡栏

重访:如何启动具有多个选项卡的 KDE konsole 运行各种 progs?

具有多个 where 子句的 Linq to Datatable

Linq to Entity 具有多个左外连接

具有多个包含的Linq-to-Sql

打开多个选项卡的自动注销