近期的一个项目需要以Word文件做模板动态生成Doc文件。
原先是使用 VBA 做的,也可以实现,但效果不太满意,一方面是速度比较慢,另一方面是由于客户端环境比较复杂,经常会出现各种错误。
现在的方案基于WordML,结合 xslt ,生成需要的DOC文档。
下面先记录一下模板和XSLT文件的生成步骤:
1. 编辑需要作为模板的Word文档
2. 将Doc文件另存为XML文件,确认没有附加任何 XML 架构
3. 在XML文档中加入需要的标签<tag/>,并使用 XML ToolBox 进行转换
4. 生成 Schema
5. 可以使用文本编辑器,修改 Schema 文件( xsd)
6. 将架构添加到模板Doc中,最终另存为XML文件
7. 生成模板文件的样式XSLT文件:wml2xslt e:\模板1.xml -o e:\模板1.xslt -nsa -nf -v
8.测试:将模板文件另存为只包含数据的XML文件,如 模板1_data.xml,然后用Word打开它,再应用生成的xslt文件,应可以看到所需要的包含数据的格式。
9.编制程序,动态加载XML或DB数据,生成下载文件。
先这样,有时间再整理吧。
列一下参考的文章和需要的工具。
工具:
XML Toolbox for Microsoft Office Word 2003
(注意此工具需要的安装环境:.NET Framework 1.1和 .NET Programmability Support installed during Office 2003 setup)
文章 :
与 XML 一起使用 Visual Basic 和 ASP 生成 Excel 2003 工作簿
Word 2003 XML:备忘录样式示例
Developing Word XML Using the Microsoft Office Word 2003 XML Toolbox
Using Just Word 2003 (with a little help from Notepad) to develop XML and XSL documents
Creating a Seed Document [Word 2003 XML Reference]