本文主要介绍.NET(C#)或.NET Core服务端或客户端没安装MS Office Excel软件的情况下,创建Excel(.XLS和.XLSX)文件的方法及代码。

1、使用ExcelLibrary创建Excel文件

免费的开源库,发布在Google Code上:

ExcelLibrary

它非常简单,小巧且易于使用。此外,它还有一个DataSetHelper,可让您使用DataSetDataTable轻松处理Excel数据。
ExcelLibrary似乎仍然只适用于较旧的Excel格式(.xls文件),但可能会在以后为较新的2007/2010格式添加支持。还可以使用EPPlus,它仅适用于Excel 2007/2010格式文件(.xlsx文件)。还有NPOI与这两个工作。总之,随着时间的推移,EPPlus似乎是最好的选择。它似乎也更积极地更新和记录。

EPPlus支持数据透视表,ExcelLibrary可能有一些支持(ExcelLibrary中的数据透视表问题

这里有几个链接供快速参考:

ExcelLibrary - GNU较小GPL 
EPPlus - GNU较宽松通用公共许可证(LGPL)
NPOI - Apache许可证

ExcelLibrary的一些示例代码

以下是从数据库获取数据并从中创建工作簿的示例。请注意,ExcelLibrary代码是底部的单行:

//创建数据集和表
DataSet ds = new DataSet("New_DataSet");
DataTable dt = new DataTable("New_DataTable");
//为每个设置区域设置
ds.Locale = System.Threading.Thread.CurrentThread.CurrentCulture;
dt.Locale = System.Threading.Thread.CurrentThread.CurrentCulture;
//打开DB连接(在本例中使用OleDB)
OleDbConnection con = new OleDbConnection(dbConnectionString);
con.Open();
//创建一个查询并用数据库中的数据填充数据表
string sql = "SELECT Whatever FROM MyDBTable;";
OleDbCommand cmd = new OleDbCommand(sql, con);
OleDbDataAdapter adptr = new OleDbDataAdapter();
adptr.SelectCommand = cmd;
adptr.Fill(dt);
con.Close();
//将该表添加到数据集中
ds.Tables.Add(dt);
//从数据集中创建Excel工作表
ExcelLibrary.DataSetHelper.CreateWorkbook("MyExcelFile.xls", ds);

2、使用Aspose.Cells创建Excel文件(.Net(C#)/.NET Core)

Aspose.Cells-for-.NET是收费软件,但是网上有破解版可以,它的性能很好,官方定期都对组件进行更新,并且支持最新的.NET Core。

Aspose下载地址https://products.aspose.com/cells/net

破解版下载地址https://download.csdn.net/download/wylcy/10389581?utm_source=bbsseo

官方文档地址https://docs.aspose.com/display/cellsnet/Home

官方Demo代码https://github.com/aspose-cells/Aspose.Cells-for-.NET

public static void SaveExcelData(string path)
        {
            //Aspose.Cells.License li = new Aspose.Cells.License();
            //li.SetLicense("Aspose.Cells.lic");
            Aspose.Cells.Workbook wk = new Aspose.Cells.Workbook();
            Worksheet ws = wk.Worksheets[0];
            for (int i = 0; i < 9; i++)
            {
                for (int j = 0; j < 9; j++)
                {
                    ws.Cells.Rows[i][j].Value = (i + 1) + "*" + (j + 1) + "=" + (i + 1) * (j + 1);
                }
            }
            wk.Save(path);
        }

详细介绍.Net Core Aspose.Cells创建和读取Excel(.xls,.xlsx)数据

推荐文档