我如何在不需要安装Excel的计算机上使用C#创建Excel电子表格?
我如何在不需要安装Excel的计算机上使用C#创建Excel电子表格?
以下是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);
如果您喜欢xlsx格式,可以尝试我的库EPPlus。它始于ExcelPackage的源代码,但后来进行了全面重写。
它支持范围、单元格样式、图表、形状、图片、命名范围、自动筛选和很多其他内容。
您有两个选择:
根据EPPlus 5的readme.md文件:
在新许可下,EPPlus在某些情况下仍然可以免费使用,但在商业企业中使用需要购买商业许可证。
EPPlus网站:https://www.epplussoftware.com/
LoadFromCollection<T>
,LoadFromDataTable
等(通过此处发现)。 - PeterX那么,使用微软的Open XML SDK 2.0呢?
以下是一些好处:
链接:
我成功使用了以下开源项目:
ExcelPackage 用于 OOXML 格式 (Office 2007)
NPOI 用于 .XLS 格式 (Office 2003)。 NPOI 2.0 (Beta) 也支持 XLSX。
欢迎查看我的博客文章:
您可以使用OLEDB来创建和操作Excel文件。请查看此链接:Reading and Writing Excel using OLEDB.
典型示例:
using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\temp\\test.xls;Extended Properties='Excel 8.0;HDR=Yes'"))
{
conn.Open();
OleDbCommand cmd = new OleDbCommand("CREATE TABLE [Sheet1] ([Column1] string, [Column2] string)", conn);
cmd.ExecuteNonQuery();
}
编辑 - 更多链接:
商业解决方案SpreadsheetGear for .NET可以实现。
您可以在这里查看ASP.NET(C#和VB)的实时示例,并在此处下载评估版本。
免责声明:我拥有SpreadsheetGear LLC。
我使用过几个选项:
如果必须使用XLSX: ExcelPackage 是一个不错的起点,但当开发者停止工作时就死了。 ExML 接着从那里开始并添加了一些功能。ExML 不是一个坏选择,我仍在几个生产网站上使用它。
然而,对于我所有的新项目,我都使用 NPOI ,这是 Apache POI 的 .NET 移植版。 NPOI 2.0 (Alpha) 也支持 XLSX 格式。
如果你正在创建Excel 2007/2010文件,请尝试使用这个开源项目:https://github.com/closedxml/closedxml
它提供了一种面向对象的方式来操作文件(类似于VBA),而不必处理XML文档的烦恼。它可以被任何.NET语言,比如C#和Visual Basic(VB),使用。
ClosedXML允许你在没有Excel应用程序的情况下创建Excel 2007/2010文件。典型的例子是在Web服务器上创建Excel报表:
var workbook = new XLWorkbook();
var worksheet = workbook.Worksheets.Add("Sample Sheet");
worksheet.Cell("A1").Value = "Hello World!";
workbook.SaveAs("HelloWorld.xlsx");