我有一个从 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();
Run Code Online (Sandbox Code Playgroud)
也许你可以尝试使用 Infodinamica.Framework.Expotable 包,托管在 Nuget 中。
有了它,你可以做这样的事情
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();
Run Code Online (Sandbox Code Playgroud)
您可以使用 nuget 命令安装:
Install-Package Infodinamica.Framework.Exportable
Run Code Online (Sandbox Code Playgroud)
唯一的问题是,文档是西班牙语的。
项目页面在这里
导出示例(西班牙语)在这里
它还可以在此处启用导入文件(西班牙语)
| 归档时间: |
|
| 查看次数: |
34699 次 |
| 最近记录: |