poiword目錄
『壹』 使用poi操作word時如何在有多個表格的word中定位到其中一個表格
關鍵代碼如下:
FileInputStream fileInputStream = new FileInputStream( soureFile);
POIFSFileSystem pfs = new POIFSFileSystem( fileInputStream );
HWPFDocument hwpf = new HWPFDocument(pfs);// make a HWPFDocument object
OutputStream output = new FileOutputStream( targetFile );
hwpf.write(output);// write to the target file
output.close();
(2)再word中插入表格。HWPF的情況:
Table tcDataTable = range.insertTableBefore( (short)column , row);//column and row列數和行數
tcDataTable.getRow(i).getCell(j).getParagraph(0).getCharacterRun(0).insertBefore("插入i行j列的內容" );
XWPF的情況:
String outputFile = "D:\\test.doc";
XWPFDocument document = new XWPFDocument();
XWPFTable tableOne = document.createTable();
XWPFTableRow tableOneRowOne = tableOne.getRow(0);
tableOneRowOne.getCell(0).setText("11");
XWPFTableCell cell12 = tableOneRowOne.createCell();
cell12.setText("12");
// tableOneRowOne.addNewTableCell().setText("第1行第2列");
// tableOneRowOne.addNewTableCell().setText("第1行第3列");
// tableOneRowOne.addNewTableCell().setText("第1行第4列");
XWPFTableRow tableOneRowTwo = tableOne.createRow();
tableOneRowTwo.getCell(0).setText("21");
tableOneRowTwo.getCell(1).setText("22");
// tableOneRowTwo.getCell(2).setText("第2行第3列");
XWPFTableRow tableOneRow3 = tableOne.createRow();
tableOneRow3.addNewTableCell().setText("31");
tableOneRow3.addNewTableCell().setText("32");
FileOutputStream fOut;
try {
fOut = new FileOutputStream(outputFile);
document.write(fOut);
fOut.flush();
// 操作結束,關閉文件
fOut.close();
} catch (Exception e) {
e.printStackTrace();
}
『貳』 java實現插入word頁眉頁腳以及生成目錄及頁碼
public class JavaToWords {
/**
* word運行程序對象
*/
private ActiveXComponent word;
/**
* 選定內容
* @ Dispatch 選定的范圍或插入點
*/
public Dispatch select() {
return word.getProperty("Selection").toDispatch();
}
public void toWord(String seekView) {
Dispatch selection = select();
//設置頁眉
if(seekView != null && !"".equals(seekView)){
//取得活動窗體對象
Dispatch ActiveWindow = word.getProperty("ActiveWindow").toDispatch();
//取得活動窗格對象
Dispatch ActivePane = Dispatch.get(ActiveWindow,"ActivePane").toDispatch();
//取得視窗對象
Dispatch View = Dispatch.get(ActivePane, "View").toDispatch();
try{
Dispatch.put(View,"SeekView", "9"); //設置頁眉
Dispatch.put(selection,"Text",seekView);
Dispatch.put(View, "SeekView", "10"); // 10是設置頁腳
Dispatch.put(selection, "Text", seekView); //
}finally{
if(ActiveWindow != null ) ActiveWindow.safeRelease();
if(ActivePane != null ) ActivePane.safeRelease();
if(View != null ) View.safeRelease();
}
}
}
}
希望對你有些幫助,不過好像要下一個外部資源包,叫jacob 的,我也記的不太清楚了,應該是這個,你找找看
『叄』 java poi導出word 可以設置格式嗎
讀取word 2003及word 2007需要的jar包
讀取 2003 版本(.doc)的word文件相對來說比較簡單,只需要 poi-3.5-beta6-.jar 和 poi-scratchpad-3.5-beta6-.jar 兩個 jar 包即可, 而 2007 版本(.docx)就麻煩多,我說的這個麻煩不是我們寫代碼的時候麻煩,是要導入的 jar 包比較的多,有如下 7 個之多:
1. openxml4j-bin-beta.jar
2. poi-3.5-beta6-.jar
3. poi-ooxml-3.5-beta6-.jar
4 .dom4j-1.6.1.jar
5. geronimo-stax-api_1.0_spec-1.0.jar
6. ooxml-schemas-1.0.jar
7. xmlbeans-2.3.0.jar
其中 4-7 是 poi-ooxml-3.5-beta6-.jar 所依賴的 jar 包(在 poi-bin-3.5-beta6-.tar.gz 中的 ooxml-lib 目錄下可以找到)。
2.換行符號
硬換行:文件中換行,如果是鍵盤中使用了"enter"的換行。
軟換行:文件中一行的字元數容量有限,當字元數量超過一定值時,會自動切到下行顯示。
對程序來說,硬換行才是可以識別的、確定的換行,軟換行與字體大小、縮進有關。
3.讀取的注意事項
值得注意的是: POI 在讀取不會讀取 word 文件中的圖片信息; 還有就是對於 2007 版的 word(.docx), 如果 word 文件中有表格,所有表格中的數據都會在讀取出來的字元串的最後。
4.讀取word文本內容代碼
1 import java.io.File;
2 import java.io.FileInputStream;
3 import java.io.InputStream;
4
5 import org.apache.poi.POIXMLDocument;
6 import org.apache.poi.POIXMLTextExtractor;
7 import org.apache.poi.hwpf.extractor.WordExtractor;
8 import org.apache.poi.openxml4j.opc.OPCPackage;
9 import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
10
11 public class Test {
12 public static void main(String[] args) {
13 try {
14 InputStream is = new FileInputStream(new File("2003.doc"));
15 WordExtractor ex = new WordExtractor(is);
16 String text2003 = ex.getText();
17 System.out.println(text2003);
18
19 OPCPackage opcPackage = POIXMLDocument.openPackage("2007.docx");
20 POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage);
21 String text2007 = extractor.getText();
22 System.out.println(text2007);
23
24 } catch (Exception e) {
25 e.printStackTrace();
26 }
27 }
28 }
『肆』 我想用poi解析word文檔,文檔的內容基本是若干個標題,每個標題下面跟一段內容,內容包括文字圖片表格
解析出來,存儲list,然後拼接參數
『伍』 Java POI讀取word文檔的一個問題(想得到定義的標題格式的編號)
我現在也有這個需求,有沒有能提供一下解決方法的
『陸』 java利用poi將word轉成html 發現目錄有亂碼 怎麼解決 求大 神 解答 對比圖我貼出來了
那個不是亂碼,是表示鏈接。你可以試試poi中輸出是否可以忽略掉Hyperlink
『柒』 怎麼使用apache poi 在已有的word模板表格中 在指定位置插入行
xwpfrow row 創建一個row
row 中設置col
在獲取當前位置 table.addrow