从C#创建Excel(.XLS和.XLSX)文件

如何在运行代码的计算机上安装不需要Excel的情况下如何使用C#创建Excel电子表格?

您可以使用名为ExcelLibrary的库。这是一个免费的,在Google Code上发布的开源库:

ExcelLibrary

这看起来是上面提到的PHP ExcelWriter的一个端口。它不会写入新的.xlsx格式,但他们正在努力添加该功能。

它非常简单,小巧易用。另外它有一个DataSetHelper,可以让你使用DataSets和DataTables轻松处理Excel数据。

ExcelLibrary似乎仍然只适用于较旧的Excel格式(.xls文件),但可能会为较新的2007/2010格式添加支持。

您还可以使用仅适用于Excel 2007/2010格式文件(.xlsx文件)的EPPlus

如评论中所述,每个库都有一些已知的错误。总之,随着时间的推移,EPPlus似乎是最好的选择。它似乎更积极地更新和记录。

另外,正如下面@АртёмЦарионов所指出的,EPPlus支持数据透视表,并且ExcelLibrary可能有一些支持(ExcelLibrary中的数据透视表问题

这里有几个链接供快速参考:
ExcelLibrary – GNU Lesser GPL 
EPPlus – GNU 较低通用公共许可证(LGPL)

这里是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文件,但上述功能让我印象深刻。

添加评论

友情链接:蝴蝶教程