如何使用 C# 创建 Excel 电子表格,而无需在运行代码的机器上安装 Excel?
您可以使用名为 ExcelLibrary 的库。这是一个发布在 Google Code 上的免费开源库:
Excel库
这看起来是您上面提到的 PHP ExcelWriter 的一个端口。它不会写入新的 .xlsx 格式,但他们正在努力添加该功能。
它非常简单、小巧且易于使用。此外,它还有一个 DataSetHelper,可让您使用 DataSets 和 DataTables 轻松处理 Excel 数据。
ExcelLibrary 似乎仍然只适用于较旧的 Excel 格式(.xls 文件),但将来可能会增加对较新的 2007/2010 格式的支持。
您还可以使用EPPlus,它仅适用于 Excel 2007/2010 格式文件(.xlsx 文件)。还有适用于两者的NPOI 。
如评论中所述,每个库都有一些已知的错误。总之,随着时间的推移,EPPlus 似乎是最佳选择。它似乎也得到了更积极的更新和记录。
这里有一些 ExcelLibrary 的示例代码:
这是一个从数据库中获取数据并从中创建工作簿的示例。请注意,ExcelLibrary 代码是底部的单行:
//Create the data set and table DataSet ds = new DataSet("New_DataSet"); DataTable dt = new DataTable("New_DataTable"); //Set the locale for each ds.Locale = System.Threading.Thread.CurrentThread.CurrentCulture; dt.Locale = System.Threading.Thread.CurrentThread.CurrentCulture; //Open a DB connection (in this example with OleDB) OleDbConnection con = new OleDbConnection(dbConnectionString); con.Open(); //Create a query and fill the data table with the data from the DB string sql = "SELECT Whatever FROM MyDBTable;"; OleDbCommand cmd = new OleDbCommand(sql, con); OleDbDataAdapter adptr = new OleDbDataAdapter(); adptr.SelectCommand = cmd; adptr.Fill(dt); con.Close(); //Add the table to the data set ds.Tables.Add(dt); //Here's the easy part. Create the Excel worksheet from the data set ExcelLibrary.DataSetHelper.CreateWorkbook("MyExcelFile.xls", ds);
创建 Excel 文件就这么简单。您也可以手动创建 Excel 文件,但上述功能给我留下了深刻的印象。