如何使用C#创建Excel电子表格而不需要在运行代码的计算机上安装Excel?
当前回答
OpenXML也是一个很好的选择,它有助于避免在服务器上安装MS Excel。Microsoft提供的Open XML SDK 2.0简化了操作Open XML包和包中的底层Open XML架构元素的任务。开放式XML应用程序编程接口(API)封装了开发人员在开放式XML包上执行的许多常见任务。
看看OpenXML:有助于避免在服务器上安装MS Excel的替代方案
其他回答
我想知道为什么没有人建议PowerShell使用免费的ImportExcel模块;它可以轻松创建XML Excel文件(xlsx)。
从SQL Server等数据库创建Excel工作表时尤其容易。。。
我找到了另一个没有太多依赖性的库:MiniExcel。
您可以使用DataTables作为电子表格创建数据集(表格的名称是电子表格的名称),并通过以下方式将其保存到.xlsx文件
using var stream = File.Create(filePath);
stream.SaveAs(dataSet);
or
MiniExcel.SaveAs(filePath, dataSet);
它还提供Excel文件的读取,并支持CSV文件的读取和写入。
各种Office 2003 XML库适用于较小的excel文件。然而,我发现以XML格式保存的大型工作簿的大小是一个问题。例如,我使用的新XLSX格式的工作簿将是40MB(当然也更紧凑),它将变成360MB的XML文件。
就我的研究而言,有两个商业软件包允许输出到较旧的二进制文件格式。他们是:
宝石盒ComponentOne Excel
两者都不便宜(我认为分别为500美元和800美元)。但两者都独立于Excel本身。
我会好奇的是OpenOffice.org之类的Excel输出模块。我想知道它们是否可以从Java移植到.Net。
IKVM+波伊
或者,你可以使用Interop。。。
我使用了几个选项:
如果XLSX是必须的:ExcelPackage是一个很好的开始,但当开发人员停止工作时就夭折了。ExML不是一个坏选项,我仍在一些生产网站上使用它。
不过,对于我的所有新项目,我都使用NPOI,即Apache POI的.NET端口。NPOI 2.0(Alpha)也支持XLSX。