2016-09-29 7 views
1

私はSharepointにアップロードされたMicrosoft Wordの.docx文書を持っています。私のJavaコードでは、この文書をbyte []に​​ダウンロードしました。 OK。今、私が望むのは、このバイト[]を処理してXWPFDocumentを取得し、いくつかの変数をドキュメントに置き換えることができるようにすることです。バイト[]からXWPFDocumentを作成するにはどうすればよいですか?

どうか、私を助けることができますか?

ありがとうございます!

答えて

1

あなたはXWPFDocumentのコンストラクタで指定されたInputStream(するByteArrayInputStream)を使用して、バイト[]からXWPFDocumentとして読み取ることができますし、段落を取得し、XWPFDocumentから実行することができます。 その後、以下のように編集できます。

byte[] byteData = .... 

// read as XWPFDocument from byte[] 
XWPFDocument doc = new XWPFDocument(new ByteArrayInputStream(byteData)); 

int numberToPrint = 0; 

// you can edit paragraphs 
for (XWPFParagraph para : doc.getParagraphs()) { 
    List<XWPFRun> runs = para.getRuns(); 

    numberToPrint++; 

    for (XWPFRun run : runs) { 

     // read text 
     String text = run.getText(0); 

     // edit text and update it 
     run.setText(numberToPrint + " " + text, 0); 
    } 
} 

// save it and you can get the updated .docx 
FileOutputStream fos = new FileOutputStream(new File("updated.docx")); 
doc.write(fos); 
+0

ありがとう!それはうまく動作します! – user3270931

0
ByteArrayInputStream bis = new ByteArrayInputStream(bytebuffer); 
POIXMLTextExtractor extractor = (POIXMLTextExtractor) ExtractorFactory.createExtractor(bis); 
POIXMLDocument document = extractor.getDocument(); 

if (document instanceof XWPFDocument) 
     XWPFDocument xDocument = (XWPFDocument) document; 

https://poi.apache.org/text-extraction.html

+0

ありがとうございます。 2番目のソリューションで私のために動作します。この方法で私に次のエラーが発生します:javax.el.E​​LException:java.lang.NoSuchMethodError:org.apache.xmlbeans.XmlOptions.setLoadEntityBytesLimit(I)Lorg/apache/xmlbeans/XmlOptions;私はそれがライブラリのバージョンの問題のためだと思います。再度、感謝します。 – user3270931

関連する問題