導航:首頁 > 文件類型 > poi讀取word文件

poi讀取word文件

發布時間:2024-12-03 01:21:50

⑴ POI讀取word文件怎樣返回包含關鍵字的一行

給個思路吧。
讀取word用doc4j,然後就是讀成字元串進行處理了。
提取關鍵字專首先是中文分詞技屬術,就是把一段話劃分成多個組成的詞語,然後統計詞語的出現次數,這個是主要依據。這個是有實現的jar包的,可以去搜,搜java 中文分詞就行。
分詞之後,記錄詞語出現位置,這個是輔助的依據,記錄詞語一句話中的位置,越靠前越像關鍵字,權重越高。
甚至可能需要建立一個權重體系,次數設置一個權重,整體位置設置一個權重,不同位置權重也不同。不了解權重可以理解成系數(百分比的,然後計算那個詞是關鍵詞)。
同時需要注意,可能需要排除一些常用詞,哪些次需要排除,這個需要根據程序反復運行,讀取不同word文章的結果來定。

⑵ java 中用poi讀取word和用docx4j讀取word

不知道你是具體讀取Word裡面的什麼元素,下面以讀取文字和圖片為例吧,兩個代碼示例,你參考看看:

  1. 讀取文本

import com.spire.doc.Document;

import java.io.FileWriter;

import java.io.IOException;

public class ExtractText {

public static void main(String[] args) throws IOException {

//載入Word文檔
Document document = new Document();
document.loadFromFile("C:\Users\Administrator\Desktop\sample.docx");

//獲取文檔中的文本保存為String
String text=document.getText();

//將String寫入Txt文件
writeStringToTxt(text,"ExtractedText.txt");
}

public static void writeStringToTxt(String content, String txtFileName) throws IOException {

FileWriter fWriter= new FileWriter(txtFileName,true);
try {
fWriter.write(content);
}catch(IOException ex){
ex.printStackTrace();
}finally{
try{
fWriter.flush();
fWriter.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}

}


2. 讀取圖片


import com.spire.doc.Document;

import com.spire.doc.documents.DocumentObjectType;

import com.spire.doc.fields.DocPicture;

import com.spire.doc.interfaces.ICompositeObject;

import com.spire.doc.interfaces.IDocumentObject;

import javax.imageio.ImageIO;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.IOException;

import java.util.ArrayList;

import java.util.LinkedList;

import java.util.List;

import java.util.Queue;

public class ExtractImages {

public static void main(String[] args) throws IOException {

//載入Word文檔

Document document = new Document();

document.loadFromFile("C:\Users\Administrator\Desktop\sample.docx");

//創建Queue對象

Queue nodes = new LinkedList();

nodes.add(document);

//創建List對象

List images = new ArrayList();

//遍歷文檔中的子對象

while (nodes.size() > 0) {

ICompositeObject node = nodes.poll();

for (int i = 0; i < node.getChildObjects().getCount(); i++) {

IDocumentObject child = node.getChildObjects().get(i);

if (child instanceof ICompositeObject) {

nodes.add((ICompositeObject) child);

//獲取圖片並添加到List

if (child.getDocumentObjectType() == DocumentObjectType.Picture) {

DocPicture picture = (DocPicture) child;

images.add(picture.getImage());

}

}

}

}

//將圖片保存為PNG格式文件

for (int i = 0; i < images.size(); i++) {

File file = new File(String.format("output/圖片-%d.png", i));

ImageIO.write(images.get(i), "PNG", file);

}

}

}

注意這里使用的jar包是spire.doc.jar,需要在java程序中先導入jar文件。

⑶ 有關Java POI問題:從資料庫讀取word excel 或者是html文件,如何讀取文件內容,創建包含內容的圖片文件

你可以把word文件用二進制的方式保存到資料庫,再把他讀取出來,
WordExtractor extractor = new WordExtractor();
String str = extractor.extractText(in);
這個in 你可以把讀取出來的二進制轉為ByteArrayInputStream 對象。

⑷ java 誰有poi讀取本地word然後在替換word的內容如table、圖片....的demo、然後再將word轉成pdf 在線等

讀取到word後 用freemarker 定義模板 寫出來就可以了!

⑸ java poi 操作word文檔,怎麼寫入帶上下標的文字

1.1 添加poi支持:包下載地址http://www.apache.org/dyn/closer.cgi/poi/release/

1.2 POI對Excel文件的讀取操作比較方便,POI還提供對Word的DOC格式文件的讀取。但在它的發行版本中沒有發布對Word支持的模塊,需要另外下載一個POI的擴展的Jar包。下載地址為http://www.ibiblio.org/maven2/org/textmining/tm-extractors/0.4/ 下載extractors-0.4_zip這個文件

package com.ray.poi.util;

import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.poifs.filesystem.DirectoryEntry;
import org.apache.poi.poifs.filesystem.DocumentEntry;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.textmining.text.extraction.WordExtractor;

/**
* 讀寫doc
* @author wangzonghao
*
*/
public class POIWordUtil {
/**
* 讀入doc
* @param doc
* @return
* @throws Exception
*/
public static String readDoc(String doc) throws Exception {
// 創建輸入流讀取DOC文件
FileInputStream in = new FileInputStream(new File(doc));
WordExtractor extractor = null;
String text = null;
// 創建WordExtractor
extractor = new WordExtractor();
// 對DOC文件進行提取
text = extractor.extractText(in);
return text;
}
/**
* 寫出doc
* @param path
* @param content
* @return
*/
public static boolean writeDoc(String path, String content) {
boolean w = false;
try {

// byte b[] = content.getBytes("ISO-8859-1");
byte b[] = content.getBytes();

ByteArrayInputStream s = new ByteArrayInputStream(b);

POIFSFileSystem fs = new POIFSFileSystem();
DirectoryEntry directory = fs.getRoot();

DocumentEntry de = directory.createDocument("WordDocument", s);

FileOutputStream ostream = new FileOutputStream(path);

fs.writeFilesystem(ostream);

s.close();
ostream.close();

} catch (IOException e) {
e.printStackTrace();
}
return w;
}

}
測試

package com.ray.poi.util;

import junit.framework.TestCase;

public class POIUtilTest extends TestCase {

public void testReadDoc() {
try{
String text = POIWordUtil.readDoc("E:/work_space/poi/com/ray/poi/util/demo.doc");
System.out.println(text);
}catch(Exception e){
e.printStackTrace();
}

}

public void testWriteDoc() {
String wr;
try {
wr = POIWordUtil.readDoc("E:/work_space/poi/com/ray/poi/util/demo.doc");

boolean b = POIWordUtil.writeDoc("c:\\demo.doc",wr);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}

⑹ 關於poi讀和寫word文檔

java.lang.
明顯得是提示數據越界了,檢查一下你代碼中有關數組的操作看下標是不是可能產生問題,這是運行時異常,查起來比較麻煩,主要是整理自己的思路。祝你順利。

閱讀全文

與poi讀取word文件相關的資料

熱點內容
百威里銷售abc數據是什麼 瀏覽:835
java行標題欄的表格 瀏覽:200
上傳文件名不允許 瀏覽:857
企業文員秘書培訓視頻教程 瀏覽:944
我的電腦工具文件夾選項文件類型 瀏覽:237
簡訊平台對應分析師代碼 瀏覽:415
因添加搜索引擎後找不到文件 瀏覽:64
怎麼恢復錄音文件 瀏覽:423
100110升級攻略 瀏覽:281
蘋果4s怎麼開啟無線區域網絡 瀏覽:551
民航人裝什麼app 瀏覽:570
應用app內存怎麼清理 瀏覽:359
平板有哪些適合小學生的app 瀏覽:573
無線網路app有哪些 瀏覽:508
奧迪q七大燈怎麼編程 瀏覽:873
電信4g突然變得很慢iphone 瀏覽:825
word應用大全百度網盤 瀏覽:802
電腦上的文件夾如何打包發送到微信 瀏覽:924
怎樣找到壓縮文件 瀏覽:364
怎麼安裝網路列印機xp 瀏覽:576

友情鏈接