如何使用C#创建Excel电子表格而不需要在运行代码的计算机上安装Excel?
当前回答
下面是使用LINQ to XML完成此操作的方法,并提供示例代码:
用LINQ to XML快速导入和导出Excel数据
它有点复杂,因为您必须导入名称空间等等,但它确实可以避免任何外部依赖。
(当然,它是VB.NET,而不是C#,但您可以始终在自己的项目中隔离VB.NET内容,以使用XML文字,并使用C#执行其他所有操作。)
其他回答
实际上,您可能想查看C#中可用的互操作类(例如Microsoft.Office.interop.Excel)。您可以说没有OLE(这不是),但互操作类非常容易使用。在这里查看C#文档(Interop for Excel从C#PDF的第1072页开始)。
如果你没有尝试过,你可能会印象深刻。
请注意Microsoft对此的立场:
Microsoft当前不建议也不支持,从任何无人值守、,非交互式客户端应用程序或组件(包括ASP,ASP.NET、DCOM和NT服务),因为Office可能表现出不稳定Office在此环境中运行时的行为和/或死锁。
只想添加另一个引用到直接解决您问题的第三方解决方案:http://www.officewriter.com
(免责声明:我为制作OfficeWriter的公司SoftArtisans工作)
你试过sylk吗?
我们曾经在经典的asp中生成excelsheets作为sylk,现在我们也在寻找excelsheeter。
sylk的优点是,可以格式化单元格。
Java开源解决方案是Apache POI。也许这里有一种设置互操作的方法,但我对Java的了解不够,无法回答这个问题。
当我探索这个问题时,我最终使用了互操作程序集。
如果您对xlsx格式感到满意,请尝试我的库EPPlus。它从ExcelPackage的源代码开始,但后来变成了完全重写。
它支持范围、单元格样式、图表、形状、图片、命名范围、自动筛选以及许多其他功能。
您有两个选项:
EPPlus 4,根据LGPL许可(原始分支机构,开发至2020年)EPPlus 5,根据Polyform非商业1.0.0许可(自2020年起)。
从EPPlus 5自述文件:
有了新的许可证,EPPlus在某些情况下仍然可以免费使用,但需要商业许可证才能在商业企业中使用。
EPPlus网站:https://www.epplussoftware.com/
推荐文章
- 实体框架核心:在上一个操作完成之前,在此上下文中开始的第二个操作
- 如何为构造函数定制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版本