2009-01-12 99 views
1

我有一个关于如何最好地将xhtml转换为excel的问题。让用户在Excel中编辑它,然后在最后回到xhtml。如何从xhtml到excel到xhtml

背景是我有一个web应用程序,其中的文本存储在xhtml中。这些我可以用excel单元格中的html导出为ex​​cel文件。

我也可以重新导入这个细胞返回到XHTML但我的问题是,编辑是很难用于普通用户的HTML是简单地在Excel单元格中的文本。

这是错误的做法,我应该只使用多个HTML编辑器自定义应用程序,但用户希望在离线的Excel文档,他们可以轻松地交流和工作。

下面是一个示例XML,但它可以是其中用户在HTML编辑器(TinyMCE的)与XHTML严格进入任何XHTML。我假设没有用于excel的html编辑器插件。我从来没有听说过一个,并一直没能找到一个,因为这是最简单的解决方案..

评论

* A Bullet: The impact of 
* A bullet 2: Test text 

标题

* Bullet: text 
* Bullet: Text 

任何人有什么想法? 谢谢, 喝醉

回答

0

一个解决方案,我曾经实施了我个人的使用是我写在Excel中的宏仅与数据解析的HTML文件,并填充Excel工作表。当我完成后,宏将读取表单中的数据并生成html文件。然而

我的情况下,有一个非常简单的HTML文件,我基本上只用于解析极少数的标签。

但是,您可能能够找到解决方案/实用程序,使您更轻松地完成此任务。

+0

虽然这将工作,如果我在这种情况下有保证的xhtml结构,我不能控制xhtml中的内容(至少不是当前),因为用户可以根据他们认为合适的方式进行更改。 – Crocked 2009-01-12 22:56:01

+0

解析xhtml可能仍然是一个好主意,虽然我可以看看在Excel中提取每个标签作为一个单独的单元格。唯一的问题是,如果他们重新导入它,并且原始html结构已经改变(这就是为什么我想要excel到xhtml步骤),同时它可能不会按需要工作。 – Crocked 2009-01-12 22:57:35

+0

也许我可以将标记信息存储在excel文件不知何故 – Crocked 2009-01-12 22:58:26

0

没有看到您的具体文件,我只能选择一种通用的解决方案。

如果你能打破由标记的文档,可以显示数据给最终用户和保存在一个隐藏的工作表的标签信息。所以,如果您有:

1-233

您可以显示1,-2和33在可见工作表和存储TD,TD风格=的前三个单元格 “颜色:红”,TD在不可见纸张上的匹配单元格中。然后,将标签数据存储在视线之外,最大限度地减少用户的困惑,并且可以在需要生成xhtml文件时检索它。

0

下面是一个示例XML,但它可以是其中用户在HTML编辑器(TinyMCE的)与XHTML严格进入任何XHTML。我假设没有用于excel的html编辑器插件。我从来没有听说过..

评论
  • 子弹:的
  • 一颗子弹2的影响:测试文字

标题

  • 子弹:文本
  • 子弹:文本

0

没有看到它可能很难文件的有关XSLT的复杂性,但什么?如果它是.xlsx,那么Excel本身就是xml。无论哪种方式,它会导出到XML。您可以制作一个将其转换为最终xhtml文档的XSLT模板。

0

我的建议是要真正做到以下几点:

XML擅长对XML

我对这种推理是

  1. 用户将能够打开XML和实际得到对文档的基本理解(xhtml具有无用的标记,例如“html”或“head”),因为它清晰简单。
  2. Excel可以打开XML文件
  3. 容易让你写一个导出Excel数据到XML宏(很多漂亮的XML阅读器/刻录机)
  4. 可以定义为XML文件的XSLT模板,即将它很好地显示为一个html文档。
  5. 我注意到您对于仅限于office 2003的评论。您可以定义一个xslt模式,然后如果它足够简单,firefox或iexplorer会实际为您呈现它。你可以在这里查看浏览器的支持:http://www.w3schools.com/xsl/xsl_browsers.asp
1

如果你已经熟悉XSLT,听起来这将是最好的选择。尽管Excel 2003不使用.xlsx格式,但它读取(并保存)他们称之为“SpreadsheetML”的内容,这也是XML。我发现学习如何转换为SpreadsheetML的最简单方法就是在Excel中打开一个电子表格,然后根据您的喜好将其格式化,然后选择另存为 - > XML电子表格(* .xml)。打开该XML文件,您将看到Excel为工作簿定义的所有样式,然后可以使用这些样式作为“模板”来编写将您的XHTML转换为该格式的XSLT。

要进一步阅读和体面的演练,请在MSDN上查看Dive into SpreadsheetML (part 1 of 2)

想必您可以使用另一个XSL转换来将您需要的数据从SpreadsheetML提取到XHTML。