如何使用C#创建Excel电子表格而不需要在运行代码的计算机上安装Excel?
当前回答
如果您对xlsx格式感到满意,请尝试我的库EPPlus。它从ExcelPackage的源代码开始,但后来变成了完全重写。
它支持范围、单元格样式、图表、形状、图片、命名范围、自动筛选以及许多其他功能。
您有两个选项:
EPPlus 4,根据LGPL许可(原始分支机构,开发至2020年)EPPlus 5,根据Polyform非商业1.0.0许可(自2020年起)。
从EPPlus 5自述文件:
有了新的许可证,EPPlus在某些情况下仍然可以免费使用,但需要商业许可证才能在商业企业中使用。
EPPlus网站:https://www.epplussoftware.com/
其他回答
http://www.codeproject.com/KB/cs/Excel_and_C_.aspx<=为什么不使用内置的windows功能,只需在服务器上安装office,您安装的任何应用程序都可以自动化。
使用本机方法就容易多了。
如果安装了它,你就可以使用它,这是windows中最棒、使用率最低的功能,在过去的好日子里,它被称为COM,它为你节省了大量时间和痛苦。
或者更简单地使用ref lib MS供应品-http://csharp.net-informations.com/excel/csharp-create-excel.htm
下面是使用LINQ to XML完成此操作的方法,并提供示例代码:
用LINQ to XML快速导入和导出Excel数据
它有点复杂,因为您必须导入名称空间等等,但它确实可以避免任何外部依赖。
(当然,它是VB.NET,而不是C#,但您可以始终在自己的项目中隔离VB.NET内容,以使用XML文字,并使用C#执行其他所有操作。)
我最近刚刚使用了FlexCel.NET,发现它是一个优秀的库!我对太多的软件产品不这么说。在这里进行整个销售宣传没有意义,你可以阅读他们网站上的所有功能。
这是一个商业产品,但如果你购买它,你会得到完整的源代码。所以我想,如果你真的想,你可以将它编译成你的程序集。否则,它只是一个额外的程序集来xcopy-没有配置或安装或类似的东西。
我认为,如果没有第三方库,您将找不到任何方法来做到这一点,因为.NET框架显然没有内置的支持,OLE自动化只是一个痛苦的世界。
你可以试试我的SwiftExcel库。此库直接写入文件,因此非常高效。例如,您可以在几秒钟内写入100k行,而不占用任何内存。
下面是一个简单的用法示例:
using (var ew = new ExcelWriter("C:\\temp\\test.xlsx"))
{
for (var row = 1; row <= 10; row++)
{
for (var col = 1; col <= 5; col++)
{
ew.Write($"row:{row}-col:{col}", col, row);
}
}
}
您只需使用Excel XML格式将其写入XML,并以.XLS扩展名命名,它将以Excel打开。您可以控制XML文件标题中的所有格式(粗体、宽度等)。
维基百科中有一个XML示例。
推荐文章
- 实体框架核心:在上一个操作完成之前,在此上下文中开始的第二个操作
- 如何为构造函数定制Visual Studio的私有字段生成快捷方式?
- 为什么Visual Studio 2015/2017/2019测试运行器没有发现我的xUnit v2测试
- 如何使用JSON确保字符串是有效的JSON。网
- AppSettings从.config文件中获取值
- 通过HttpClient向REST API发布一个空体
- 如何检查IEnumerable是否为空或空?
- 自动化invokerrequired代码模式
- 没有ListBox。SelectionMode="None",是否有其他方法禁用列表框中的选择?
- 在c#代码中设置WPF文本框的背景颜色
- 在c#中,什么是单子?
- c#和Java中的泛型有什么不同?和模板在c++ ?
- c#线程安全快速(est)计数器
- 如何将此foreach代码转换为Parallel.ForEach?
- 如何在iis7应用程序池中设置。net Framework 4.5版本