Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
308 views
in Technique[技术] by (71.8m points)

java开发的如下程序,为什么报没有此方法

public void insertHis() {

    boolean result =false;
    try {
        List<List<String>> list = POIXlsx.readExcel();
        System.out.println(list.toString());
        for (List<String> ls:list) {
            hisXxlyService.insertXxlyHis(ls.get(0),ls.get(1),ls.get(2),ls.get(3),ls.get(4),ls.get(5),ls.get(6));
        }
        logger.info(result);
    }catch (Exception e) {
        e.printStackTrace();
    }

}
public static List<List<String>> readExcel() {
        File file = new File("d:/demo.xlsx");
        List<List<String>> list_all = new ArrayList<List<String>>();
        try {
            XSSFWorkbook workbook = new XSSFWorkbook(FileUtils.openInputStream(file));
            //获取名称为sheet0的工作表
            //XSSFSheet sheet = workbook.getSheet("sheet0");
            //根据索引获取
            XSSFSheet sheet = workbook.getSheetAt(0);
            int firstRowNum = 0;
            //sheet页中最后一行行号
            int lastRowNum = sheet.getLastRowNum();

            for (int i = firstRowNum; i <= lastRowNum; i++) {
                XSSFRow row = sheet.getRow(i);
                int lastCellNum = row.getLastCellNum();
                List<String> list = new ArrayList<String>();
                for (int j = 0; j < lastCellNum; j++) {
                    XSSFCell cell = row.getCell(j);
                    String value;

                    if (cell==null){
                        value ="";
                    }else {
                        cell.setCellType(Cell.CELL_TYPE_STRING);
                        value = cell.getStringCellValue();
                    }
                    list.add(value);

                   // System.out.print(value + " ");
                }
                list_all.add(list);


            }

            //System.out.println(list_all.toString());


        } catch (Exception e) {
            e.printStackTrace();
        }
        return list_all;
    }

报错如下
java.lang.NoSuchMethodError: com.sw.util.POIXlsx.readExcel()Ljava/util/List;
    at com.sw.controller.TestController.insertHis(TestController.java:32)
    at sun.reflect.GeneratedMethodAccessor25.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137)
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:776)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:705)
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:967)

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
  1. 建议删除一下target后重新试试看。
  2. 如果是在项目中使用非maven方式引入第三方JAR包,那么问题可能在引入JAR包的方式上。

提示信息说:
java.lang.NoSuchMethodError: com.sw.util.POIXlsx.readExcel()

说明没有在 com.sw.util.POIXlsx 找到readExcel()方法。但按逻辑而言,如果POIXlsx没有readExcel()方法,错误应该发生在编译的阶段。
而在运行的时候发生了上述错误,我怀疑可能是target未同步或是jar包引入方式能满足编译环境却无法在满足运行环境造成的。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...