参见英文答案 >
How to create Excel (.XLS and .XLSX) file in C# without installing Ms Office? [closed]42个
我与Linq一起使用Entity Framework来填充我的网格视图.
我想从excel获得与Linq相同的数据.
此外,同一个Excel工作表中的第二个选项卡应来自另一个Linq查询.
我与Linq一起使用Entity Framework来填充我的网格视图.
我想从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.第二阶段是构建XSLX格式(假设2个CSV不够).为此,我建议Microsoft使用the Open XML SDK从CSV字符串构建两个工作表.我也喜欢this answer用于构建Excel电子表格.