我需要通过C#创建一个excel文件。我读过几个地方,创建XML文档是最简单的方法吗?我需要有多个命名选项卡,并能够指定特定单元格是文本,日期时间,数字等...任何建议或好的例子?
答案 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:
这在SO的其他地方也得到了相当好的报道:
答案 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)
答案 4 :(得分:0)
我们在工作中使用名为Aspose的套件。它有一个大型的全功能“细胞”组件,为我们创造奇迹。
答案 5 :(得分:0)
http://epplus.codeplex.com/ - 看看这个项目,它一直在帮助我。我在https://stackoverflow.com/questions/170652/whats-the-best-net-library-for-parsing-and-generating-excel-spreadsheets
找到了此链接答案 6 :(得分:0)
用于Office的Visual Studio工具是一种很好的方法