java解析word2003 doc文件中的表格

本文介绍了如何使用Apache POI插件解析包含表格的Word2003(DOC)文件,同时探讨了Word97-2003的文件加密机制,包括RC4和MD5算法。提供了Java代码实现和相关资源链接,包括GitHub项目以及Jar包下载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1;apache poi插件链接http://poi.apache.org/ 这个插件主要用于office文件文本内以及富文本(表格,图片)等的提取,还有支持对已知密码的office文件的提取,
 黑框里面的是Word (HWPF+XWPF)
其他格式的文件加密以及解密都有 见链接http://poi.apache.org/encryption.html
http://www.openoffice.org/sc/compdocfileformat.pdf
因为之前做全文检索的时候需要提取word03里面的表格进行分析,使用这个插件对加密的文件不支持,所以研究了下doc文件格式以及它的加密方式,另外office07系列的比较简单,基本都是对xml解析,这里就不分析了。再说一句,这里只是对linux平台,其他调用微软com的那套就不用说了。

2;首先先说下word97-03文件是怎么加密的,word加密时并不是所有字节都加密,只是带有文本,表格,富文本,图片的stream才会加密,涉及到的加密算法有RC4,MD5算法。
具体细节参考:
http://wenku.baidu.com/link?url=TrCAFtr1mHXZbh3qnnOlhYmXTS7-ynw-CES0W6KOUzRzzRg7l04Y5LXl0V3W8pQRGO4SxyzXDlXk5zlLOzPphlXOxfC6UglqRzJlnb6439_

这里只是列出一些代码实现:
字符串转utf8

 public static String utf8ToUnicode(String inStr) {
      char[] myBuffer = inStr.toCharArray();

      StringBuffer sb = new StringBuffer();
      for (int i = 0; i < inStr.length(); i++) {
       UnicodeBlock ub = UnicodeBlock.of(myBuffer[i]);
          if(ub == UnicodeBlock.BASIC_LATIN){
           sb.append(myBuffer[i]);
          }else if(ub == UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS){
           int j = (int) myBuffer[i] - 65248;
           sb.append((char)j);
          }else{
           short s = (short) myBuffer[i];
              String hexS = Integer.toHexString(s);
              String unicode = "\\u"+hexS;
           sb.append(unicode.toLowerCase());
          }
      }
      return sb.toString();
  }
//验证passwd
public boolean  verifypwd(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值