好吧,我有一个带演示文稿文字的Word(主要步骤)和一个带有3列的表格,第一个和第二个都不重要,它是text列,但是第三个带有一些图片。目的是检索第三列中包含的图像,以便将它们保存在数据库中(采用BLOB格式)。我尝试使用Apache POI解决此问题,因为我已经将它用于获取文本的其他列。在下面,我的代码已经实现了:
package wordtosql;
import java.awt.image.BufferedImage;
import java.io.*;
import java.util.List;
import javax.imageio.IIOException;
import javax.imageio.ImageIO;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.*;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
public class ReadDocxTableFiles {
public static void main(String[] args) throws FileNotFoundException, IOException {
try {
FileInputStream fis = new FileInputStream("FGI-38562 Felsökning låg svetsstyrka CF_UB.docx");
XWPFDocument docx = new XWPFDocument(fis);
List<XWPFTable> table = docx.getTables();
for (XWPFTable xwpfTable : table) {
List<XWPFTableRow> row = xwpfTable.getRows();
for (XWPFTableRow xwpfTableRow : row) {
List<XWPFTableCell> cell = xwpfTableRow.getTableCells();
for (XWPFTableCell xwpfTableCell : cell) {
if (xwpfTableCell != null) {
System.out.println(xwpfTableCell.getText());
}
}
}
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}`
这个词是由第三方软件生成的,除了它产生的词之外,我无法利用它。因此,这些Word文档都是相同的格式。