使用C#构建Excel文件

时间:2009-11-09 21:38:33

标签: c# .net xml excel

我需要通过C#创建一个excel文件。我读过几个地方,创建XML文档是最简单的方法吗?我需要有多个命名选项卡,并能够指定特定单元格是文本,日期时间,数字等...任何建议或好的例子?

7 个答案:

答案 0 :(得分:7)

您需要System.IO.Packaging API - 这将允许您按照Inserting Values into Excel 2007 Cells中的说明生成.xlsx文档。 Excel 2003和XP也可以使用Excel 2007格式,并且安装了免费的Microsoft Office Compatibility Pack

答案 1 :(得分:2)

看看NPOI:

http://www.codeplex.com/npoi

这在SO的其他地方也得到了相当好的报道:

https://stackoverflow.com/search?q=create+excel+.net

答案 2 :(得分:2)

这是令人沮丧的难度,因为微软推荐的机制涉及使用Office,这在桌面上很好但对网络没用。

.xls文件的二进制格式是正确的,因此Microsoft在Office 2007中引入了.xlsx个OpenXML文件。

.xslx据说很简单 - 它只是一个装满XML文件的zip容器。您可以使用System.IO.Packaging打开它并使用System.Xml进行编辑。对于旧版本的办公室,甚至还有一个兼容性包。

不幸的是,这并不简单 - .xslx的格式为horrible beyond words

看起来他们采用了16位优化的二进制.xls格式(最初是为Windows 3.1设计的)并将其序列化为XML而不是二进制。然后他们添加了真正愚蠢的变化,就像单元格注释实际上是VML - 一种据称随着IE5丢弃的格式!他们还为XML添加了大量的魔术数字和元数据,因此您无法在其上使用任何类型的变换,因此您需要手动解析该变形。

最后他们把它作为一个完整的驴进行调试,我们经常发现兼容包报告为损坏的.xslx文件(没有给出理由),但最近版本的Office可以正常打开。

有一个非常好的开源库:SpreadsheetLight。这是一个非常好的库,但是任何需要你自己挖掘和扩展.xslx文件的东西都会很痛苦。

答案 3 :(得分:1)

你可以查看{{3p>

link

spreadsheetgear

答案 4 :(得分:0)

我们在工作中使用名为Aspose的套件。它有一个大型的全功能“细胞”组件,为我们创造奇迹。

答案 5 :(得分:0)

答案 6 :(得分:0)