将Open XML Excel文件转换为HTML

4

我正在开发适用于MS Office 2007的打印解决方案。办公自动化对我来说不合适,因为需要安装Office。 Open XML文档查看器是通过XSLT转换将Word文件(.docx)转换为HTML格式的解决方案,但它仅适用于.docx。同样的技术是否可用于Excel电子表格文件?


我们是在讨论压缩开放标准(.xlsx)还是SpreadsheetML(.xml)格式? - Ian
当然是SpreadsheetML。但是(.xlsx)只是打包了资源的SpreadsheetML xml 文件。我需要从xml文件中提取和链接资源并生成html。 - necrostaz
@necrostaz:我不认为XLSX只是重新打包的SpreadsheetML,我记得它们相当不同。 - Ian
好的,有几个版本的SpreadsheetML,我指的是由ECMA指定并在Office 2007及以后版本中使用的Open XML SpreadsheetML。它规定了文件、资源、关系等等,所有这些都打包在xlsx中。 - necrostaz
necrostaz是正确的。XSLX是Open Document Format中SpreadsheetML(以及包中的任何其他ML,最常见的是DrawingML)的打包版本。 - Todd Main
@necrostaz:我只是想确认一下下面的答案是否回答了你的问题。 - Todd Main
3个回答

1

你可以使用这篇文章XSL transformation of SpreadsheetML to HTML作为开发自己转换的起点。你还可以查看OpenXML/ODF Translator Add-ins for Office中的开源XSLT,以获取在OOXML之外的任何转换中可能需要考虑的一些想法。要记住的一件事是,SpreadsheetML在包内的文件结构上更类似于PresentationML而不是WordprocessingML(即对于每个工作表,都有一个单独的文件)。

如果你是用.NET来做这个,我建议你使用LINQ而不是XSLT。我已经将DrawingML转换为SVG,并且Linq使得它变得容易(在功能上与XSLT相似,在.NET内部实现等方面)。


谢谢您的回复!我已经在开放办公室和openxml-odf转换器代码上工作过,同时我也阅读了关于将SpreadsheetML转换为HTML的XSL变换文章,但我认为这可能已经不是最有效的方法了。 - necrostaz

0
如果您正在查看Excel 97-03(xls)或Excel 2007(xlsx)文件,那么我建议使用FlexCel。我已经使用过它,非常好,并且与竞争对手相比价格相当便宜。
请注意,它还没有完全支持Excel 2007中存在的所有格式。但是它具有内置功能可导出为HTML。

谢谢,但专有或共享库不适合我 :( - necrostaz
你可能想把那个放在原始问题中,因为它不够清晰。 - Ian

0
你可以编写一个SpreadsheetML解析器。schema 可以从微软的网站上获取。
我曾经写过一个,它涵盖了数据、结构和基本格式,通过库将其转换并重新保存为XLS文件。这并不太困难。

这个架构是为2002 Office设计的,但我需要OpenXml SpreadsheetML,这个架构很难,因此我需要找到任何现有的解决方案 :( - necrostaz
OpenXml和SpreadsheetML不是同一回事... SpreadsheetML特指Office 2003及以后版本中存在的XML格式,而不是XLSX文件。如果只涉及单个事物,请不要在同一句中混合使用OpenXml和SpreadsheetML。 - Ian
xslx = Office Open XML SpreadsheetML 的 Excel 扩展 http://msdn.microsoft.com/en-us/library/dd922181.aspx 在 Open XML 社区中,无论何处使用 SpreadsheetMl 术语,但最初它是为 Office 2003 定义的。 对于 Office 2003,它具有模式 urn:schemas-microsoft-com:office:spreadsheet,对于 XLSX - http://schemas.openxmlformats.org/spreadsheetml/2006/main - necrostaz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接