Linq to Excel支持多个选项卡
Linq to Excel支持多个选项卡
这个问题已经在这里有答案了:
我使用Entity Framework和Linq填充我的网格视图。
我想要从Linq中获取与我从Linq获得的相同数据的excel。
同样,在同一excel工作表中的第二个选项卡应来自另一个Linq查询。
最容易和最好的方法是什么?
admin 更改状态以发布 2023年5月25日
这里有两个步骤。第一个是将你的 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 电子表格。