学员作品 学员心得技术园地 潮人地 Android(安卓)培训 杭州电脑(计算机)培训 杭州网络营销培训
返回首页
当前位置: 主页 > 学员天地 > 技术园地 >

杭州Java培训之Java读取word文件的程序演示

时间:2014-11-06 22:29来源:csdn 作者:niaopeng 点击:
杭州Java培训之Java读取word文件的程序演示 完成对office文件的操作可以借助apache.poi包(我用的poi-3.10-FINAL),导入相应的jar包(最好全部导入) 下面的程序演示了一些操作word的过程,详细的函数功能可以查看此包的官方API

杭州Java培训之Java读取word文件的程序演示

完成对office文件的操作可以借助apache.poi包(我用的poi-3.10-FINAL),导入相应的jar包(较好全部导入)

下面的程序演示了一些操作word的过程,详细的函数功能可以查看此包的官方API

 

  1. import java.io.*;  
  2. import org.apache.poi.POIXMLDocument;  
  3. import org.apache.poi.hwpf.HWPFDocument;  
  4. import org.apache.poi.hwpf.extractor.*;  
  5. import org.apache.poi.hwpf.usermodel.Range;  
  6. //xwpf专门加强处理Word2007 .docx 格式  
  7. import org.apache.poi.xwpf.usermodel.XWPFDocument;  
  8.   
  9. public class WordReader {  
  10.   
  11.     WordExtractor wordExtractor;  
  12.   
  13.     public static void main(String[] args) {  
  14.         System.out.println("该word文档(docx格式)总页数如下:");  
  15.         new WordReader().getPageCount("F:\\数据挖掘及其应用论文格式.docx");  
  16.           
  17.         System.out.println("\n获取整个word文本内容:");  
  18.         System.out.println(new WordReader().getTextFromWord("F:\\word2003.doc"));  
  19.           
  20.         System.out.println("按段获取文本内容:");  
  21.         System.out.println(new WordReader().getTextByParagraph("F:\\word2003.doc"));  
  22.     }  
  23.   
  24.     // 统计word文件总页数(仅docx格式的有效!) doc格式也有相应的方法,但是由于doc本身的问题,导致获取的页数总是错误的!  
  25.     public void getPageCount(String filePath) {  
  26.         XWPFDocument docx;  
  27.         try {  
  28.             docx = new XWPFDocument(POIXMLDocument.openPackage(filePath));  
  29.             int pages = docx.getProperties().getExtendedProperties()  
  30.                     .getUnderlyingProperties().getPages();// 总页数  
  31.             int wordCount = docx.getProperties().getExtendedProperties()  
  32.                     .getUnderlyingProperties().getCharacters();// 忽略空格的总字符数  
  33.             // 另外还有getCharactersWithSpaces()方法获取带空格的总字数。  
  34.             System.out.println("Total pages=" + pages +"页; "" Total wordCount=" + wordCount);  
  35.         } catch (IOException e) {  
  36.             e.printStackTrace();  
  37.         }  
  38.     }  
  39.   
  40.     // 获取word文档中所有文本的方法(仅对doc文件有效)  
  41.     public String getTextFromWord(String filePath) {  
  42.         String res = null;  
  43.         File file = new File(filePath);  
  44.         try {  
  45.             FileInputStream fis = new FileInputStream(file);  
  46.             wordExtractor = new WordExtractor(fis);  
  47.             // 获取所有文本  
  48.             res = wordExtractor.getText();  
  49.             fis.close();  
  50.         } catch (IOException e) {  
  51.             e.printStackTrace();  
  52.         }  
  53.         return res;  
  54.     }  
  55.   
  56.     // 按段获取文本(仅对doc文件有效)  
  57.     public String getTextByParagraph(String filePath) {  
  58.         String res = null;  
  59.         FileInputStream fis;  
  60.         try {  
  61.             fis = new FileInputStream(filePath);  
  62.             wordExtractor = new WordExtractor(fis);  
  63.             // 获取段文本  
  64.             String[] strArray = wordExtractor.getParagraphText();  
  65.             for (int i = 0; i < strArray.length; i++) {  
  66.                 System.out.println("第 " + (i+1)+" 段\n"+strArray[i]);  
  67.             }  
  68.   
  69.             // 这个构造函数从InputStream中加载Word文档  
  70.             HWPFDocument doc = new HWPFDocument(  
  71.                     (InputStream) new FileInputStream(filePath));  
  72.             // 这个类为HWPF对象模型,对文档范围段操作  
  73.             Range range = doc.getRange();  
  74.             int num = range.numParagraphs();  
  75.             System.out.println("该文档共" + num + "段");//空行也算一段  
  76.             System.out.println("获取第"+num+"段内容如下:\n"+range.getParagraph(num-1).text());  
  77.             fis.close();  
  78.   
  79.         } catch (IOException e) {  
  80.             e.printStackTrace();  
  81.         }  
  82.         return res;  
  83.     }  
  84. }  


 

(责任编辑:杭州华育http://www.hzeduask.com ;java,php,安卓开发,it培训详询客服报名咨询
分享到:
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
提交报名信息

2017年杭州将加大力度经济转型,吸纳更多的技术人才落户杭州,软件人才需求量更是大幅提升,针对目前杭州IT行业人才需求“井喷”现象,华育软件杭州实训基地与杭州155家IT名企合作,建立人才培养与输送关系,启动“Eduask国家高端IT紧缺人才培养工程”。6月针对杭州地区18-28岁大中专生待业青年发放68个技能实训名额(应届大中专毕业生优先),经短期专业岗前实训后推荐进入企业,起薪4500-6000元,五险一金。

姓名: * 性别:
学历: 电话: *
所在地: *
您目前状况:
留言:
*