因为项目的需要,做了一个导入word的模块,大致思路如下,利用jacob来解析word,首先定义一个xml文件,用于描述单元格的位置、对应的属性以及数据校验规则等等,一般来说当表格的内容发生变化或者规则变化时只需要修改配置文件就可以了。
做完后,测试了很多次,觉得各种问题都考虑全面了,将错误提示也做得比较完整,但是上线后还是遇到了各种各样的问题。在部署的一天,总是导入不成功,jacob提示的错误也相当有限,根本找不出有价值的信息。第二天有个同事说测试服务器装的word为2000,版本问题?后来装了2003,好了,果然是word版本问题。
到了正式上线后,又出现了各种各样的问题,当然大多都是用户提交的文档不符合规范造成,大致有如下情况:
1 要求填写数字的地方填写了带圈圈的数字(跌倒!这难道也是数字?),甚至有个人直接在里面打了个“对勾”,硬是半天没弄懂他的用意。
2 填写数字的地方还画蛇添足的加了个单位,如“人”。
3 以前要求填数字的地方,现在要求可以填英文。
4 单位名称居然有超过30个汉字的。
5 很多人都填写了重复的信息。
6 用全角输入的字符,如字母、数字、空格等等。
7 最头疼的是word里面有不可见的字符,记得有一项的最大长度限制在20,用肉眼看那个word里面的长度为13,但程序总是报超过长度,真是汗了半天,后来把字符删除得只剩下3个后再导入,发现在系统里面出现了"?",所以“眼见为实”是不是得改了,眼见不一定为实^o^.
我的解决办法如下:
1 带圈的数字和阿拉伯数字的asc码相差一个固定数,通过判断asc码进行转换,对于要求填数字的地方填写了其它字符的一律用正则表达式过滤掉。
2 数据类型变化的和长度变化的修改配置文件即可。
3 对于某些重复信息,(如一个单位有可能有重名的,出现相同的名字,到底是重复还是重名?这不是程序判断得了的),只能手工清除了。
4 全角也可以通过asc码进行转换。
5 不可见字符,这是一个Latin字符中不可见的东东,通过程序解析发现asc码为160,在家里测试了一下,通过asc码转换可以自动过滤掉,只可惜导入word的工作已经进行了一半了,用武之地已不多。
分享到:
相关推荐
如果你要对 MS Word、Excel 进行处理,JACOB 是一个好的选择。JACOB目前已经成为sourceforge(http://sourceforge.net/projects/jacob- project/)的一个开源项目,本文使用的版本是1.10.1。 这篇文章可能不能完全...
NULL 博文链接:https://lixiamani.iteye.com/blog/581465
读取word文件的内容,并将内容返回为String类型!
java Jacob完美实现word添加图片水印(内附源码及jar包)。 公司最近让搞Word文档添加水印,所有下载的文档需要添加公司印章,搞了好多天才实现,利用Jacob完美实现word添加图片水印(注意需要把dll文件放到jdk的bin...
JAVA使用Jacob提取Word信息,一个很好的范例,帮助你简化书写流程
jacob.jar: a JAR file for the java classes which you must add to your CLASSPATH. The package names replace com.ms with com.jacob (for example com.ms.com.Variant maps to com.jacob.com.Variant. jacob...
java使用jacob将word 转pdf
最近因项目开发的需要,整理了一份用JAVA导出WORD文档,其部署步骤如下: 1、将jacob-1.14.3-x86.dll放在服务器的系统盘(或运行本机的系统):\WINDOWS\system32目录下。 2、将jacob-1.14.3-x86.dll放在JDK 的 bin ...
JAVA使用jacob操作MS word ,要将jacob.dll放到系统文件夹下面,
java使用jacob将word,excel,ppt转成html,代码和所需的jar都在压缩包,项目需求实现后分享下
jacob jacob配置 java操作word java操作word:jacob(方法解析+环境配置)
java操作word 超简单实用:第一步: 引入包jacob.jar 第二步:参考工具类MsWordTool.java 含概基本WORD 所有操作方法 【特别难点】解决实例: 1)word书签内容替换后,书签会丢失问题 2)word定点批量插入图片...
主要为大家详细介绍了java利用jacob将word转pdf,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
完整项目,直接可以导入到myeclipse中运行,代码有详细注释,在readme.txt文件里面有注意事项。
使用jacob通过word样表生成制式表格,包括文字的替换,图片的插入以及动态在word表格中追加数据,将生成的word文档转位pdf格式。
java 使用jacob Word转PDF 完美格式,包内含有 jacob.jar包,office提供的SaveAsPDFandXPS.exe插件,以及源码、和步骤操作说明书
2、 把jacob.dll放入 Java\jdk1.5.0_06\jre\bin目录下.把jacob.jar放入 Java\jdk1.5.0_0\jre\lib\ext 目录下.可以正常运行。 3、把jacob.dll放入 \glc\src目录下.把jacob.jar放入WEB-INF\lib目录下,也是可以正常...
Java 实现word文件增加图片水印 jacob实现 用到的jar itextpdf-5.5.2和 jacob
java使用jacob工具操作word文档,读取写入文档。详细的介绍使用方式。
java_jacob_操作word_文档_进行写操作_如生成表格_添加_图片