私はSharepointにアップロードされたMicrosoft Wordの.docx文書を持っています。私のJavaコードでは、この文書をbyte []にダウンロードしました。 OK。今、私が望むのは、このバイト[]を処理してXWPFDocumentを取得し、いくつかの変数をドキュメントに置き換えることができるようにすることです。バイト[]からXWPFDocumentを作成するにはどうすればよいですか?
どうか、私を助けることができますか?
ありがとうございます!
私はSharepointにアップロードされたMicrosoft Wordの.docx文書を持っています。私のJavaコードでは、この文書をbyte []にダウンロードしました。 OK。今、私が望むのは、このバイト[]を処理してXWPFDocumentを取得し、いくつかの変数をドキュメントに置き換えることができるようにすることです。バイト[]からXWPFDocumentを作成するにはどうすればよいですか?
どうか、私を助けることができますか?
ありがとうございます!
あなたは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);
ByteArrayInputStream bis = new ByteArrayInputStream(bytebuffer);
POIXMLTextExtractor extractor = (POIXMLTextExtractor) ExtractorFactory.createExtractor(bis);
POIXMLDocument document = extractor.getDocument();
if (document instanceof XWPFDocument)
XWPFDocument xDocument = (XWPFDocument) document;
ありがとうございます。 2番目のソリューションで私のために動作します。この方法で私に次のエラーが発生します:javax.el.ELException:java.lang.NoSuchMethodError:org.apache.xmlbeans.XmlOptions.setLoadEntityBytesLimit(I)Lorg/apache/xmlbeans/XmlOptions;私はそれがライブラリのバージョンの問題のためだと思います。再度、感謝します。 – user3270931
ありがとう!それはうまく動作します! – user3270931