Java解析word(2003/2007)
現在microsoft wordにはいくつかのバージョン97、2003、2007があり、この3つのバージョンのデータ格納フォーマットにはかなりの違いがありますが、現在97は基本的に市場を脱退しており、このバージョンを使用する人はほとんどいません.だから、私たちのシステムでは2003バージョンと2007バージョンしか考えていません.wordの文字内容を読み取ることができることを要求しているだけです.その中の文字スタイルや画像などの情報は無視でき、wordファイルを直接操作する必要もないので、apacheのPOIで読み取ることを選びました.
2003バージョン(.doc)のwordファイルを読み込むのは比較的簡単で、poi-3.5-beta 6-20090622.jarとpoi-scratchpad-3.5-beta 6-20090622.jarの2つのjarパッケージだけでいいですが、2007バージョン(.docx)は面倒が多く、私が言ったこの面倒は私たちがコードを書くときに煩わしいのではなく、導入するjarパッケージが比較的多いのです.1.openxml 4 j-bin-beta.jar 2.poi-3.5-beta 6-20090622.jar 3.poi-ooxml-3.5-beta 6-20090622.jar 4.dom 4 j-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-beta 6-20090622.jarに依存するjarパケット(poi-bin-3.5-beta 6-20090622.tar.gzのooxml-libディレクトリで入手可能).
コードを書く前に必要なjarパッケージをダウンロードしなければなりません.poi-bin-3.5-beta 6-20090622.tar.gzとopenxml 4 j-bin-beta.jarをダウンロードすればいいです.必要な他のjarパッケージはpoi-bin-3.5-beta 6-20090622.tar.gzで見つけることができます.以下はダウンロードアドレスです.poi-bin-3.5-beta 6-20090622.tar.gz:http://apache.etoak.com/poi/dev/bin/poi-bin-3.5-beta6-20090622.tar.gz openxml 4 j-bin-beta.jar:http://mirror.optus.net/sourceforge/o/op/openxml4j/openxml4j-bin-beta.jar 下はwordファイルを読み取るJavaコードです.注意すべきは、POIがwordファイルを読み取るときにwordファイルの画像情報を読み取ることはありません.また、2007版のword(.docx)については、wordファイルに表があれば、すべての表のデータが取り出した文字列の最後に読み出されます.
新しい、細分化された、完璧なソリューションを発見しました---Apache Tika 詳細は、http://eric-hou.iteye.com/blog/737629
2003バージョン(.doc)のwordファイルを読み込むのは比較的簡単で、poi-3.5-beta 6-20090622.jarとpoi-scratchpad-3.5-beta 6-20090622.jarの2つのjarパッケージだけでいいですが、2007バージョン(.docx)は面倒が多く、私が言ったこの面倒は私たちがコードを書くときに煩わしいのではなく、導入するjarパッケージが比較的多いのです.1.openxml 4 j-bin-beta.jar 2.poi-3.5-beta 6-20090622.jar 3.poi-ooxml-3.5-beta 6-20090622.jar 4.dom 4 j-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-beta 6-20090622.jarに依存するjarパケット(poi-bin-3.5-beta 6-20090622.tar.gzのooxml-libディレクトリで入手可能).
コードを書く前に必要なjarパッケージをダウンロードしなければなりません.poi-bin-3.5-beta 6-20090622.tar.gzとopenxml 4 j-bin-beta.jarをダウンロードすればいいです.必要な他のjarパッケージはpoi-bin-3.5-beta 6-20090622.tar.gzで見つけることができます.以下はダウンロードアドレスです.poi-bin-3.5-beta 6-20090622.tar.gz:http://apache.etoak.com/poi/dev/bin/poi-bin-3.5-beta6-20090622.tar.gz openxml 4 j-bin-beta.jar:http://mirror.optus.net/sourceforge/o/op/openxml4j/openxml4j-bin-beta.jar 下はwordファイルを読み取るJavaコードです.注意すべきは、POIがwordファイルを読み取るときにwordファイルの画像情報を読み取ることはありません.また、2007版のword(.docx)については、wordファイルに表があれば、すべての表のデータが取り出した文字列の最後に読み出されます.
view plaincopy to clipboardprint?
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import org.apache.poi.POIXMLDocument;
import org.apache.poi.POIXMLTextExtractor;
import org.apache.poi.hwpf.extractor.WordExtractor;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
/**
* POI word 2003 word 2007 <br />
* @createDate 2009-07-25
* @author Carl He
*/
public class Test {
public static void main(String[] args) {
try {
//word 2003:
InputStream is = new FileInputStream(new File("c:\\files\\2003.doc"));
WordExtractor ex = new WordExtractor(is);
String text2003 = ex.getText();
System.out.println(text2003);
//word 2007 ,
OPCPackage opcPackage = POIXMLDocument.openPackage("c:\\files\\2007.docx");
POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage);
String text2007 = extractor.getText();
System.out.println(text2007);
} catch (Exception e) {
e.printStackTrace();
}
}
}
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import org.apache.poi.POIXMLDocument;
import org.apache.poi.POIXMLTextExtractor;
import org.apache.poi.hwpf.extractor.WordExtractor;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
/**
* POI word 2003 word 2007 <br />
* @createDate 2009-07-25
* @author Carl He
*/
public class Test {
public static void main(String[] args) {
try {
//word 2003:
InputStream is = new FileInputStream(new File("c:\\files\\2003.doc"));
WordExtractor ex = new WordExtractor(is);
String text2003 = ex.getText();
System.out.println(text2003);
//word 2007 ,
OPCPackage opcPackage = POIXMLDocument.openPackage("c:\\files\\2007.docx");
POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage);
String text2007 = extractor.getText();
System.out.println(text2007);
} catch (Exception e) {
e.printStackTrace();
}
}
}
新しい、細分化された、完璧なソリューションを発見しました---Apache Tika 詳細は、http://eric-hou.iteye.com/blog/737629