非商业C#库格式化Excel?

时间:2011-07-28 04:39:24

标签: c# excel npoi

我有一个通过某些报告服务导出到Excel的报告列表,在我的服务器上,我需要遍历这些电子表格并执行其他格式化,例如

1)隐藏列 2)重命名表 3)冻结窗格 4)设置默认缩放,打印尺寸等。 5)另存为html或转换为纯文本文件

到目前为止,我已经用互操作完成了所有工作并且效果很好但是你知道微软会在服务器上使用互操作(但是没有提供任何替换!)。将来在新服务器上安装excel也将是一场艰苦的战斗。

我用谷歌搜索了一下,并找到了一些可能的东西: -

我已经尝试了NPOI这看起来很棒,但是在尝试打开我的电子表格之后遇到异常(首先是我修复的溢出异常,然后是'超出8552字节异常的'单元格内容',我不能)。

我已经尝试过excel库,但是完全100%缺少文档。我在格式化电子表格后发现它没有保留原始格式。

任何人都知道C#的任何好的详尽免费库或Excel格式?

编辑:不幸的是,我遗漏了提到我必须使用97-2003格式的部分,所以epplus是不可能的

5 个答案:

答案 0 :(得分:5)

使用Excel文件的一种方法是使用OpenXML SDK。这需要使用Office 2007或更高版本。它的优点在于,您可以直接使用Excel文档的xml文件,而不是通过Interop,这使它成为服务器使用的一个很好的选择。缺点是文件的组织方式与通过Interop呈现的方式完全不同,因此要弄清楚什么是可能的挑战。我没有专门用于格式化,但是我使用它来通过C#创建或编辑文档,而且速度非常快。

答案 1 :(得分:4)

我使用EPPlus。简单但完成工作! http://epplus.codeplex.com/

答案 2 :(得分:2)

在某种程度上,MSFT已经开始使用MS HPC Excel integration来接受服务器端excel。尽管如此,您可能对EPPlus - “在服务器上创建高级Excel 2007/2010电子表格”感兴趣

  

EPPlus是一个读取和写入Excel 2007/2010文件的.net库   使用Open Office Xml格式(xlsx)。

EPPlus支持:

  • Cell Ranges
  • 细胞样式(边框,颜色,填充,字体,数字,对齐)
  • 图表
  • 图片
  • 形状
  • 评论
  • 保护
  • 加密
  • 数据透视表
  • 数据验证
  • 更多......

答案 3 :(得分:1)

我很久以前就使用过它,而且使用起来非常简单:

http://www.carlosag.net/Tools/ExcelXmlWriter/

答案 4 :(得分:0)

如果你需要使用xls(97到2003),你可能想尝试

http://npoi.codeplex.com/ NPOI (nuget)

在有限的情况下适合我。您可能还想看看:

Artiom Chilaru的

ExcelLibrary (source) ExcelLibrary (nuget)

非常快速有效。