java如何解析word

java如何解析word,第1张

java用poi可以 *** 作word

下面是我程序里用的,不过只是解析文本,你可以参考下:

import javaioFileInputStream;

import orgapachepoihwpfextractorWordExtractor;

import orgapachepoixwpfextractorXWPFWordExtractor;

import orgapachepoixwpfusermodelXWPFDocument;

/

对MS office文档的处理

@author caoshen

/

public class OfficeUtils {

/

获得WORD文档所有的内容

@param filePath

@return

/

public static String getWordContent(String filePath){

String content = "";

FileInputStream fis;

try {

fis = new FileInputStream(filePath);

WordExtractor we = new WordExtractor(fis);

content = wegetText();

} catch (Exception e) {

try {

fis = new FileInputStream(filePath);

XWPFWordExtractor oleTextExtractor = new XWPFWordExtractor(new XWPFDocument(fis));

content = oleTextExtractorgetText();

} catch (Exception e1) {

e1printStackTrace();

}

}

return content;

}

poi读取前程无忧的简历会打不开的,至少我以前读是这样的,因为他有时候是mht文件直接另存为word文档的,所以保险起见建议用jacob来读,如果他是doc或者是docx文档可以转化为html然后用jsoup来读取,效果挺好的

下面是转化的代码

package comjavadoc;

import comjacobactiveXActiveXComponent;

import comjacobcomDispatch;

import comjacobcomVariant;

public class JacobRead {

   public static void extractDoc(String inputFIle, String outputFile) {

          boolean flag = false;

       

          // 打开Word应用程序

          ActiveXComponent app = new ActiveXComponent("WordApplication");

          try {

             // 设置word不可见

             appsetProperty("Visible", new Variant(false));

             // 打开word文件

             Dispatch doc1 = appgetProperty("Documents")toDispatch();

             Dispatch doc2 = Dispatchinvoke(

                   doc1,

                   "Open",

                   DispatchMethod,

                   new Object[] { inputFIle, new Variant(false),

                         new Variant(true) }, new int[1])toDispatch();

             // 作为txt格式保存到临时文件

             Dispatchinvoke(doc2, "SaveAs", DispatchMethod, new Object[] {

                   outputFile, new Variant(7) }, new int[1]);

             // 关闭word

             Variant f = new Variant(false);

             Dispatchcall(doc2, "Close", f);

             flag = true;

          } catch (Exception e) {

             eprintStackTrace();

          } finally {

             appinvoke("Quit", new Variant[] {});

          }

          if (flag == true) {

             Systemoutprintln("Transformed Successfully");

          } else {

             Systemoutprintln("Transform Failed");

          }

       }

     

       public static void main(String[] args) {

       

       

           JacobReadextractDoc("D:/xxxx简历doc","D:/etxt");

       }

}

当然,也可以转化为txt读取,这部分代码没保存,你可以到网上找找,和转化成html的方法大差不差。

然后下面是我以前写的poi读取的方式:

package TestHanLp;

import javaioFileInputStream;

import javaioFileNotFoundException;

import javaioIOException;

import orgapachepoiPOIXMLDocument;

import orgapachepoiPOIXMLTextExtractor;

import orgapachepoihwpfextractorWordExtractor;

import orgapachepoiopenxml4jopcOPCPackage;

import orgapachepoixwpfextractorXWPFWordExtractor;

import orgapachepoixwpfusermodelXWPFDocument;

public class Test {

private static String text = "";

public static String  Read(String path) throws Exception{

//解析docx格式的简历

if(pathtoLowerCase()endsWith("docx")){

try {

OPCPackage oPCPackage = POIXMLDocumentopenPackage(path);

        XWPFDocument xwpf = new XWPFDocument(oPCPackage);

        POIXMLTextExtractor ex = new XWPFWordExtractor(xwpf);

            text=exgetText();

        oPCPackageclose();

        } 

   catch (FileNotFoundException e) 

       {

        eprintStackTrace();  

       } 

   catch (IOException e) 

       {  

        eprintStackTrace(); 

       } 

}else {

//解析doc格式的简历

if(pathtoLowerCase()endsWith("doc")){

FileInputStream fis = new FileInputStream(path);// 载入文档

WordExtractor wordExtractor = new WordExtractor(fis);

    String[] paragraph = wordExtractorgetParagraphText();

    StringBuffer stringBuffer = new StringBuffer();

    for (int i = 0; i < paragraphlength; i++) {

if (null != paragraph[i] && !""equals(paragraph[i])) {

paragraph[i] = paragraph[i]substring(0, paragraph[i]length() - 1);// 去掉末尾符号

}

stringBufferappend(paragraph[i])append("\n");//将每一小段隔开

}

text = stringBuffertoString();

}

}

return text ;

}

}

望题主采纳

对了,jacob读取word文档的效果比poi号,但运行速度不够,用的时候自己考虑考虑吧

xwpfdocument有多少个xwpfparagraph btnOpenAppURLtitleLabelfont = [UIFont systemFontOfSize: 12]; 在程序里边用到UIButton,通过UIButton自身的textLabel来实现标题文字的显示,但没有成功 代码如下: btnOpenAppURLtitleLabelfont

通过jodconveter来实现转化。通过启动OpenOfficeorg的服务端口,实现程序 *** 作opeanoffice实现文件的转换。 贴上代码: mport javaioFile; import javaioFileInputStream; import javaioFileOutputStream; import javaioInputStream; imp

以上就是关于java如何解析word全部的内容,包括:java如何解析word、java:解析word文档(前程无忧简历),最好有代码案例poi或者jacob解析都可以,有jar资源,求急。感谢、xwpfdocument 在哪个jar包中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9551735.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存