java导出word遇到这个问题.详细异常见下,是jar包的版本不对么?

攻城小狮 2015-04-08 10:31:10
Exception in thread "main" java.lang.NoSuchMethodError: org.openxmlformats.schemas.wordprocessingml.x2006.main.CTFootnotes.getFootnoteList()Ljava/util/List;
at org.apache.poi.xwpf.usermodel.XWPFFootnotes.onDocumentRead(XWPFFootnotes.java:84)
at org.apache.poi.xwpf.usermodel.XWPFDocument.initFootnotes(XWPFDocument.java:235)
at org.apache.poi.xwpf.usermodel.XWPFDocument.onDocumentRead(XWPFDocument.java:137)
at org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:159)
at org.apache.poi.xwpf.usermodel.XWPFDocument.<init>(XWPFDocument.java:123)
at com.pansky.crm.testDown.com.WordImp0307.setUp(WordImp0307.java:42)
at com.pansky.crm.testDown.com.WordImp0307.main(WordImp0307.java:167)
...全文
287 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
攻城小狮 2015-04-08
  • 打赏
  • 举报
回复
引用 1 楼 ahhmdwg 的回复:
没有代码看不出来啊
代码如下: package com.pansky.crm.testDown.com; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi.hwpf.HWPFDocument; import org.apache.poi.hwpf.extractor.WordExtractor; import org.apache.poi.xwpf.extractor.XWPFWordExtractor; import org.apache.poi.xwpf.usermodel.Borders; import org.apache.poi.xwpf.usermodel.LineSpacingRule; import org.apache.poi.xwpf.usermodel.ParagraphAlignment; import org.apache.poi.xwpf.usermodel.TextAlignment; import org.apache.poi.xwpf.usermodel.UnderlinePatterns; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; import org.apache.poi.xwpf.usermodel.XWPFRun; import org.junit.Assert; public class WordImp0307 { // 生成Word2007版本 private FileInputStream fis2007; private XWPFDocument doc2007; private XWPFWordExtractor word2007; // 生成Word2003版本 private FileInputStream fis2003; private HWPFDocument doc2003; private WordExtractor word2003; // 创建Word输出流 private FileOutputStream fos; public void setUp() throws Exception { // 初始化2007版本 String fileUrl7 = "D:/争议账款处理单20150129-1(18).docx"; File file7 = new File(fileUrl7); fis2007 = new FileInputStream(file7); doc2007 = new XWPFDocument(fis2007); word2007 = new XWPFWordExtractor(doc2007); // 初始化2003版本 String fileUrl3 = "D:/争议账款处理单20150129-1(18).doc"; File file3 = new File(fileUrl3); fis2003 = new FileInputStream(file3); doc2003 = new HWPFDocument(fis2003); word2003 = new WordExtractor(doc2003); // 初始化输出流 fos = new FileOutputStream(new File("D:/testCreateWord.docx")); } public void testReadWord2003() { // 直接通过getText()获取文本 String text = word2003.getText(); // 获取总页数 int i = doc2003.getSummaryInformation().getPageCount(); // 获取总字数 int j = doc2003.getSummaryInformation().getWordCount(); System.out.println("03总页数:" + i + "------------------总字数:" + j); System.out.println(text); Assert.assertNotNull(text); } public void testReadWord2007() { // 直接通过getText()获取文本 String text = word2007.getText(); // 获取总页数 int i = doc2007.getProperties().getExtendedProperties() .getUnderlyingProperties().getPages(); // 获取去除空格的总页数 int z = doc2007.getProperties().getExtendedProperties() .getUnderlyingProperties().getCharacters(); // 获取带空格的总页数 int j = doc2007.getProperties().getExtendedProperties() .getUnderlyingProperties().getCharactersWithSpaces(); System.out.println("07总页数:" + i + "------------------总字数:" + j + "------------------去除空格的总字数:" + j); System.out.println(text); Assert.assertNotNull(text); } /* * 演示如何创建Word文档 */ public void testWriteWord2007() throws IOException { System.out.println("33333"); XWPFDocument doc = new XWPFDocument(); // 创建段落 XWPFParagraph p1 = doc.createParagraph(); System.out.println("44444"); // 设置样式,此时样式为一个正方形包围文字 p1.setAlignment(ParagraphAlignment.CENTER); p1.setBorderBottom(Borders.DOUBLE); p1.setBorderTop(Borders.DOUBLE); p1.setBorderRight(Borders.DOUBLE); p1.setBorderLeft(Borders.DOUBLE); p1.setBorderBetween(Borders.SINGLE); p1.setVerticalAlignment(TextAlignment.TOP); System.out.println("44444"); // 创建1段文字,通过段落创建 XWPFRun r1 = p1.createRun(); System.out.println("444555555444"); // 设置是否粗体 r1.setBold(true); r1.setText("The quick brown fox"); r1.setBold(true); r1.setFontFamily("Courier"); r1.setUnderline(UnderlinePatterns.DOT_DOT_DASH); System.out.println("44444"); r1.setTextPosition(100); XWPFParagraph p2 = doc.createParagraph(); p2.setAlignment(ParagraphAlignment.RIGHT); p2.setBorderBottom(Borders.DOUBLE); p2.setBorderTop(Borders.DOUBLE); p2.setBorderRight(Borders.DOUBLE); System.out.println("44444"); p2.setBorderLeft(Borders.DOUBLE); p2.setBorderBetween(Borders.SINGLE); XWPFRun r2 = p2.createRun(); r2.setText("Hello Hello Hello Hello Hello Hello Hello"); r2.setStrike(true); r2.setFontSize(20); XWPFRun r3 = p2.createRun(); r3.setText("World World World World World World World"); r3.setStrike(true); r3.setFontSize(20); XWPFParagraph p3 = doc.createParagraph(); p3.setWordWrap(true); // 设置该段落填充满本页,下面在显示新文本将在下一页显示 p3.setPageBreak(true); p3.setAlignment(ParagraphAlignment.DISTRIBUTE); p3.setAlignment(ParagraphAlignment.BOTH); p3.setSpacingLineRule(LineSpacingRule.EXACT); System.out.println("777777"); p3.setIndentationFirstLine(600); System.out.println("55555"); doc.write(fos); } public void tearDown() throws IOException { if (fis2003 != null) { fis2003.close(); } if (fis2007 != null) { fis2007.close(); } if (fos != null) { fos.close(); } } public static void main(String[] args) throws Exception { WordImp0307 wordImp0307 = new WordImp0307(); wordImp0307.setUp(); wordImp0307.testReadWord2003(); wordImp0307.testReadWord2007(); wordImp0307.testWriteWord2007(); wordImp0307.tearDown(); } }
ahhmdwg 2015-04-08
  • 打赏
  • 举报
回复
没有代码看不出来啊

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧