我正在尝试使用Apache POI在word文件中创建标题,但我得到,Package应包含内容类型部分[M1.13] exception.I正在使用以下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
有人请帮助我。
答案 0 :(得分:1)
如果我在intellij中创建一个文件,我也会得到这个例外。
New -> file -> with word.docx name.
我们不应该使用openoffice / word / libreoffice创建一个.docx文件并保存,然后将其复制到目标文件夹中。
答案 1 :(得分:-2)
请检查您的xls文件名,它不应该像(my.file.xsl)那样 它应该像myfile.xsl