我正在尝试使用 Apache POI 在 Word 文件中创建 header ,但我得到,包应包含内容类型部分 [M1.13] 异常。我正在使用以下 jar
dom4j-1.7-2.jar
poi-ooxml-3.9-2.jar
poi-3.9.jar
poi-scratchpad-3.9.jar
xmlbeans-2.4.0.jar
openxml4j.jar
poi-ooxml-schemas-3.9.jar
我尝试运行的代码是
public class TestHeader {
/**
* @param args
* @throws IOException
* @throws XmlException
*/
public static void main(String[] args) throws IOException, XmlException {
InputStream input = new FileInputStream("D:\\test.docx");
XWPFDocument document = new XWPFDocument(input);
XWPFHeaderFooterPolicy headerPolicy = new XWPFHeaderFooterPolicy(
document);
XWPFHeader header = headerPolicy.getDefaultHeader();
List<XWPFTable> table = header.getTables();
for (XWPFTable xwpfTable : table) {
xwpfTable.getRow(1).getCell(0).setText("aaa"); // document.setTable(0,
// xwpfTable);
// header.insertTable(1, xwpfTable);
}
// System.out.println(header.getTables());
FileOutputStream out = new FileOutputStream("D:\\test.docx");
document.write(out);
out.close();
}
}
这是我遇到的异常
Exception in thread "main" org.apache.poi.POIXMLException: org.apache.poi.openxml4j.exceptions.InvalidFormatException: Package should contain a content type part [M1.13]
at org.apache.poi.util.PackageHelper.open(PackageHelper.java:41)
at org.apache.poi.xwpf.usermodel.XWPFDocument.<init>(XWPFDocument.java:120)
at com.core.poi.TestHeader.main(TestHeader.java:24)
Caused by: org.apache.poi.openxml4j.exceptions.InvalidFormatException: Package should contain a content type part [M1.13]
at org.apache.poi.openxml4j.opc.ZipPackage.getPartsImpl(ZipPackage.java:178)
at org.apache.poi.openxml4j.opc.OPCPackage.getParts(OPCPackage.java:662)
at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:269)
at org.apache.poi.util.PackageHelper.open(PackageHelper.java:39)
... 2 more
请有人帮助我。
最佳答案
如果我在 intellij 中创建文件,我也会遇到此异常。
New -> file -> with word.docx name.
我们应该使用 openoffice/word/libreoffice 创建一个 .docx 文件并保存它,然后将其复制到目标文件夹中。
关于java - 如何解决Word文档中的包应包含内容类型部分[M1.13],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27582610/