2 qq 39875823 qq_39875823 于 2017.09.11 17:24 提问

JAVA从数据库获取数据导入excel,获取数据详细代码该怎么写 1C

萌新小白,这个从网上看来的方法,框架用的SSM。
现在Excel能导出文件,但是除了标题,什么内容都还没能从数据库获取。
list中不知道怎么加入数据,也不知道怎么加入。
希望大神们帮帮忙解答下

以下service层代码

     String[] excelHeader = { "title", "urgency", "projectman"};  
    public HSSFWorkbook export(List<UserInfo> list) {  
        HSSFWorkbook wb = new HSSFWorkbook();  
        HSSFSheet sheet = wb.createSheet("UserInfo");  
        HSSFRow row = sheet.createRow((int) 0);  
        HSSFCellStyle style = wb.createCellStyle();  
        style.setAlignment(HSSFCellStyle.ALIGN_CENTER);  

        for (int i = 0; i < excelHeader.length; i++) {  
            HSSFCell cell = row.createCell(i);  
            cell.setCellValue(excelHeader[i]);  
            cell.setCellStyle(style);  
            sheet.autoSizeColumn(i);  
         // sheet.SetColumnWidth(i, 100 * 256);  
        }  

        for (int i = 0; i < list.size(); i++) {  
            row = sheet.createRow(i + 1);  
            UserInfo UserInfo = list.get(i);  
            row.createCell(0).setCellValue(UserInfo.getTitle());  
            row.createCell(1).setCellValue(UserInfo.getUrgency());  
            row.createCell(2).setCellValue(UserInfo.getProjectman());  
        }  
        return wb;  
    } 

以下是控制层代码

@RequestMapping(value = "/excel/export")  
    public void exportExcel(HttpServletRequest request, HttpServletResponse response)   
    throws Exception {  
        List<UserInfo> list = new ArrayList<UserInfo>();
        UserInfo obj=new UserInfo("","","");
        for(int i=0;i<list.size();i++) {
            list.add(new UserInfo(obj.getProjectman(),obj.getTitle(),obj.getUrgency()));
        }  
        HSSFWorkbook wb = ms.export(list);  
        response.setContentType("application/vnd.ms-excel");  
        response.setHeader("Content-disposition", "attachment;filename=UserInfo.xls");  
        OutputStream ouputStream = response.getOutputStream();  
        wb.write(ouputStream);  
        ouputStream.flush();  
        ouputStream.close();  

修改成这样后开始报错……

 org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.test.entity.UserInfo]: No default constructor found; nested exception is java.lang.NoSuchMethodException: org.test.entity.UserInfo.<init>()
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:982)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

现在知道数据获取不了,但实际控制层代码不知道怎么写明白,select全部之后怎么封装到数组里,然后遍历……还是很懵逼

5个回答

MathRandom
MathRandom   2017.09.11 17:38

显示的数据都是你从数据库查出来的吧,这里你没有从哪里查了数据,而且你这里设置的几个对象也是个空的,所有就什么都没有啊

qq_39875823
qq_39875823 我能加下您QQ吗,感觉这里说不太清楚&……
2 个月之前 回复
uriel_chiang
uriel_chiang   2017.09.11 20:51

首先你的List list没有值啊, list.size()=0

longlong3207
longlong3207   2017.09.11 21:08

org.test.entity.UserInfo,没有找到没人构造器,你是不是只写了有参构造然后把默认的无参构造函数覆盖了?再写个无参构造函数试试

liu346487291
liu346487291   2017.09.11 22:32

如果需要我可以给你我写的工具类和demo

qq_39875823
qq_39875823 回复it_is_me: 可以吗,太感谢了,是加您qq吗还是
2 个月之前 回复
yin767833376
yin767833376   2017.09.12 08:45

直接用报表工具ireport、Jasperreport,可以导出多种文件数据

qq_39875823
qq_39875823 ……我现在只想获取数据就行了……尴尬,其它技术得过段时间才学,现在好急
2 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片