自动化工具word文档批量转html
2013-06-26 21:16
387 查看
企业有很多的科室,科室的每个人或多或少都会写一些文档,有些文档领导需要浏览,解决的办法是将编辑的文档打印出来,供领导浏览,或是为了节约企业成本,文档就在人与人这间或部门之间copy过来,copy过去。如果员工或领导不善于管理文档,就会造成有很多的版本,或者是在以后无法轻松的找到相关的文档。
所以企业专门找到一个人(文档管理员),让这个人负责文档的管理。而文档的管理的方式有两种形式,第一种是doc形式的(即word文档),第二种是分享形式的。
对于第一种文档管理方式,只涉及到这个文档管理员,收集各部门的文档,将部门规划成一种如下图的形式:
![](http://images.cnitblog.com/blog/371076/201306/24171650-f381786e1fa84faca40c31fad36998bc.jpg)
然后在部门中再规划人员,如下图:
![](http://images.cnitblog.com/blog/371076/201306/24171706-86245ab57dfa48de942bb5d48473b410.jpg)
通过第一种形式,那么文档的管理也就解决了。只保存最新文档,对文档进行汇总等,如果领导需要什么文档的话,只需要让文档管理员打印并呈送就可以了。
但是领导或职员需要什么文档?领导也不是一台机器,没有过目不忘的本领,并不知道公司有什么文档?如果文档中有错字有谁来发现?所以为了解决这几个问题,需要实现文档的分享,也就是第二种文档管理方式。
解决思路是在局域网中建立一个网站,企业中的任何一个人都可以浏览公司的文档。通过这个网站,企业中的任何一个人也都知道本企业有什么文档,寻找资料也会方便些。
网站也很简单,只需要实现目录结构上的复制,部门对应部门,人员对应人员。再把doc转换成html,文档名称对应页面名称。然后再自动生成网站首页,这个网站也就做完了。
技术实现:
在这里只是大体介绍一下,如果需要了解技术详细的话,可以下载下面的源代码。
1.给定需要转换的目录(包含word文档的目录)和输出目录
2.读取目录中的所有word文档
3.将所有的word文章转换成Html文件,并将html文件保存到输出目录下对应的目录(即部门对应部门,人员对应人员),代码如下
![](http://images.cnitblog.com/blog/371076/201306/24171825-30eab26410d94ff5896969b01c1b6763.jpg)
4.生成首页,并将首页保存到输出目录下。为使首页结构清晰,使用了jquery插件treeview。
![](http://images.cnitblog.com/blog/371076/201306/24171924-33f2e8018bfe4d2482996fcedc8f26fa.jpg)
开发环境:win7+vs2010+office2007
测试环境:win7+office2007
总结:
在开发这个工具时,最主要的还是word转html。而我使用的方式是com方法调用word的open,saveas,close和quit。这种方式会在word的最近浏览记录中留下信息,如下:
![](http://images.cnitblog.com/blog/371076/201306/24171954-2936c67bdb03491c995d6f4052d8f941.jpg)
并且html的生成完全由word控制,生成的html的样式也完全由word控制。有的文章转换为html后,显得html内容不美观。我测试了一下,安装不同的office版本,office2003(无法转换高版本的文档),office2007,office2010,版本越高,转换后的html样式越好。
我也在网上寻找了word转html的控制方式(包括国内的、国外的),发现如果想完全控制转换,似乎是不可能的。当然也有doc转换工具,如google doc。不知道我这个观点对不对?
源代码下载:源码Convertor.rar
所以企业专门找到一个人(文档管理员),让这个人负责文档的管理。而文档的管理的方式有两种形式,第一种是doc形式的(即word文档),第二种是分享形式的。
对于第一种文档管理方式,只涉及到这个文档管理员,收集各部门的文档,将部门规划成一种如下图的形式:
![](http://images.cnitblog.com/blog/371076/201306/24171650-f381786e1fa84faca40c31fad36998bc.jpg)
然后在部门中再规划人员,如下图:
![](http://images.cnitblog.com/blog/371076/201306/24171706-86245ab57dfa48de942bb5d48473b410.jpg)
通过第一种形式,那么文档的管理也就解决了。只保存最新文档,对文档进行汇总等,如果领导需要什么文档的话,只需要让文档管理员打印并呈送就可以了。
但是领导或职员需要什么文档?领导也不是一台机器,没有过目不忘的本领,并不知道公司有什么文档?如果文档中有错字有谁来发现?所以为了解决这几个问题,需要实现文档的分享,也就是第二种文档管理方式。
解决思路是在局域网中建立一个网站,企业中的任何一个人都可以浏览公司的文档。通过这个网站,企业中的任何一个人也都知道本企业有什么文档,寻找资料也会方便些。
网站也很简单,只需要实现目录结构上的复制,部门对应部门,人员对应人员。再把doc转换成html,文档名称对应页面名称。然后再自动生成网站首页,这个网站也就做完了。
技术实现:
在这里只是大体介绍一下,如果需要了解技术详细的话,可以下载下面的源代码。
1.给定需要转换的目录(包含word文档的目录)和输出目录
2.读取目录中的所有word文档
3.将所有的word文章转换成Html文件,并将html文件保存到输出目录下对应的目录(即部门对应部门,人员对应人员),代码如下
public void ToHtml(string filePath) { this.FilePath = filePath; Word.Application word = new Word.Application(); Type wordType = word.GetType(); Word.Documents docs = word.Documents; Type docsType = docs.GetType(); Word.Document doc = (Word.Document)docsType.InvokeMember("Open", System.Reflection.BindingFlags.InvokeMethod, null, docs, new Object[] { (object)FilePath, true, true }); //打开word文档 Type docType = doc.GetType(); CreateDirectory(TargetDirectoryPath); //源目录对应目标目录 string strSaveFileName = TargetFilePath; //转换成目标文件路径 object saveFileName = (object)strSaveFileName; //另存为html,关闭文档并退出 docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod, null, doc, new object[] { saveFileName, Word.WdSaveFormat.wdFormatFilteredHTML }); docType.InvokeMember("Close", System.Reflection.BindingFlags.InvokeMethod, null, doc, null); wordType.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod, null, word, null); }word转为html后,测试页面样式:
![](http://images.cnitblog.com/blog/371076/201306/24171825-30eab26410d94ff5896969b01c1b6763.jpg)
4.生成首页,并将首页保存到输出目录下。为使首页结构清晰,使用了jquery插件treeview。
public string ToHtmlStructure(DirectoryInfo directory) { FileInfo[] files = null; DirectoryInfo[] subDirs = null; files = directory.GetFiles("*.*"); _sb.AppendLine(AddUl()); foreach (FileInfo fi in files) { string relativelinks = Uri.EscapeUriString(fi.FullName.Replace(string.Format(@"{0}\", DirectoryPath), "").Replace('\', '/')); _sb.AppendLine(string.Format("<li><a href='{0}' target='_blank'>{1}</a></li>",relativelinks, fi.Name)); } subDirs = directory.GetDirectories(); foreach (DirectoryInfo dirInfo in subDirs) { _sb.AppendLine("<li>"); _sb.AppendLine(dirInfo.Name); ToHtmlStructure(dirInfo); _sb.AppendLine("</li>"); } _sb.AppendLine("</ul>"); return _sb.ToString(); }生成的首页显示大体如下(非企业的文档,而是自己的文档):
![](http://images.cnitblog.com/blog/371076/201306/24171924-33f2e8018bfe4d2482996fcedc8f26fa.jpg)
开发环境:win7+vs2010+office2007
测试环境:win7+office2007
总结:
在开发这个工具时,最主要的还是word转html。而我使用的方式是com方法调用word的open,saveas,close和quit。这种方式会在word的最近浏览记录中留下信息,如下:
![](http://images.cnitblog.com/blog/371076/201306/24171954-2936c67bdb03491c995d6f4052d8f941.jpg)
并且html的生成完全由word控制,生成的html的样式也完全由word控制。有的文章转换为html后,显得html内容不美观。我测试了一下,安装不同的office版本,office2003(无法转换高版本的文档),office2007,office2010,版本越高,转换后的html样式越好。
我也在网上寻找了word转html的控制方式(包括国内的、国外的),发现如果想完全控制转换,似乎是不可能的。当然也有doc转换工具,如google doc。不知道我这个观点对不对?
源代码下载:源码Convertor.rar
相关文章推荐
- 自动化工具word文档批量转html
- Mysql数据库导出数据字典文档Word或者HTML的3个工具
- 使用Java的POI工具进行Word的DOC文档转为HTML页面技术简介
- PHP实现word文档转html以及pdf
- JS实现获取word文档内容并输出显示到html页面示例
- 原创SQlServer数据库生成简单的说明文档包含(存储过程、视图、数据库批量备份)小工具(附源码)
- C#把Word文档转换成HTML
- Javascript自动化文档工具JSDuck在Windows下的使用心得
- C# 导出word文档及批量导出word文档(1)
- 使用VBA将批量的WORD文档转换为PDF
- MongoDB mongoimport 工具 批量 导入 json 文档,小问题
- 用Word文档转换为HTML文档后的变化
- Web自动化框架LazyUI使用手册(4)--控件抓取工具Elements Extractor详解(批量抓取)
- 一个word文档中,多个表格的批量调整(根据窗口调整表格和添加表格水平线)
- lucene 索引非txt文档 (pdf word rtf html xml)
- .net文档生成工具2.0 支持自定义文档生成器【转:http://www.cnblogs.com/lucc/archive/2008/09/05/1284762.html】
- 将HTML保留格式粘到Word文档中
- 将Word文档转化为HTML格式的文档
- 十进制转化成2,8,16进制数工具。将代码全部复制到一个txt文档中保存,并将文件后缀.txt改为.html,再浏览器打开即可
- JAVA:借用OpenOffice将上传的Word文档转换成Html格式