Linq到Excel有多个选项卡

Fre*_*ddy 5 c# linq excel

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

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

Dr *_*ang 3

这有两个部分。第一个是将 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();
}
Run Code Online (Sandbox Code Playgroud)

该方法无法帮助您处理深层对象,但可以帮助您处理 CSV。第二阶段是构建 XSLX 格式(假设 2 个 CSV 不够)。为此,我建议使用Microsoft 的Open XML SDK从 CSV 字符串构建两个工作表。我也喜欢这个构建 Excel 电子表格的答案。