Linq to Excel与多个选项卡

我和Linq一起使用了Entity Framework来填充我的GridView。 我希望从excel中获得与Linq相同的数据。 同样的Excel表格中的第二个选项卡应该来自另一个Linq查询。

什么是最简单和最好的方法来做到这一点?

这有两个部分。 首先是将你的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。 第二阶段是构buildXSLX格式(假设2个CSV不够)。 为此,我会推荐Microsoft 的Open XML SDK从您的CSVstring中构build两个工作表。 我也喜欢这个build立Excel电子表格的答案 。