c# - 如何将 C# 对象列表导出到 Excel 电子表格?

标签 c# .net excel

我有一个从 Excel 电子表格创建的 C# 列表,我想将它导出到 Excel。我怎样才能完成那个任务?这只是一个控制台项目。我不打算在 .Net 应用程序中显示数据。我只需要电子表格。

var fileName = string.Format("C:\\Users\\SGurmu\\Desktop\\Data 091510.xls");
var connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;", fileName);

var fileName2 = string.Format("C:\\Users\\SGurmu\\Desktop\\Copy of Prototype.xls");
var connectionString2 = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;", fileName);

var adapter = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", connectionString);
var ds = new DataSet();

adapter.Fill(ds, "contacts");

var data = ds.Tables["contacts"].AsEnumerable();

List<EmployeeData> query = data.Where(x => x.Field<string>("First_Name") != string.Empty).Select(x =>

new EmployeeData
    {
    empID = x.Field<double>("EMPLOYEE"),
    firstName = x.Field<string>("First_Name"),
    lastName = x.Field<string>("Last_Name"),
    JobCategory = x.Field<string>("Job Title"),
    StartDate = x.Field<Nullable<DateTime>>("Hire Dt"),
    EndDate =   x.Field<Nullable<DateTime>>("Term Dt"),
    TermReason = x.Field<string>("Term Reason"),
    PeggedUID = x.Field<Nullable<double>>("Pegged UserID"),
    UpdateDate = x.Field<Nullable<DateTime>>("Last Updated")
    }).ToList();

最佳答案

也许您可以尝试使用在 Nuget 中托管的 Infodinamica.Framework.Expotable 包。

有了它,你可以做这样的事情

List<EmployeeData> query = data.Where(x => x.Field<string>("First_Name") != string.Empty).Select(x =>

    new EmployeeData
        {
        empID = x.Field<double>("EMPLOYEE"),
        firstName = x.Field<string>("First_Name"),
        lastName = x.Field<string>("Last_Name"),
        JobCategory = x.Field<string>("Job Title"),
        StartDate = x.Field<Nullable<DateTime>>("Hire Dt"),
        EndDate =   x.Field<Nullable<DateTime>>("Term Dt"),
        TermReason = x.Field<string>("Term Reason"),
        PeggedUID = x.Field<Nullable<double>>("Pegged UserID"),
        UpdateDate = x.Field<Nullable<DateTime>>("Last Updated")
        }).ToList();

    IExportEngine engine = new ExcelExportEngine();
    engine.AddData(EmployeeData);
    MemoryStream memory = engine.Export();

您可以使用 nuget 命令安装:

Install-Package Infodinamica.Framework.Exportable

唯一的问题是文档是西类牙语。

项目页面为here

导出示例(西类牙语)是 here

它还启用导入文件(西类牙语)here

关于c# - 如何将 C# 对象列表导出到 Excel 电子表格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12568427/

相关文章:

c# - 正则表达式可以支持找不到东西吗?

c# - 比 xsd 生成的类更快的 XML 文件读取

c# - 如何正确清理 Excel 互操作对象?

c# - 插入方法应该返回一个对象还是抛出异常

c# - 在 C# 中使用 AsQueryable 查询时出现 InvalidOperationException

c# - Moq多接口(interface)问题

vba - Excel VBA 双击

excel - Excel VBA 宏中的数组

c# - 如何在代码隐藏中操作我的 Site.Master 文件中的文本

c# - 使用文本框和自定义词典进行拼写会减慢我在 C# WPF 中的应用程序