EXCEL导出

导出:

==================在服务器上生成csv格式文件===========================

File file = CsvUtil.createCSVFile(listMap, map, path, fileName);

1、其中先获取listMap, 格式为: (‘列名’,‘列值’) 如:(‘1’,‘000000001’),

表示表中的一条记录,可以通过遍历数据库中值赋给listMap,即可以取出数据库中的值;

2、设置map,即给表格设置表头,格式为:(‘列名’,‘列值’)如:(‘1’,‘编号’),注意:这里的列名一定要和listMap中的列名一致,因为是为了给该列设置表头名称;

3、设置path,设置生成表格后的存放路径;

4、设置fileName,设置表格的名称

上述值设置成功后,通过函数:

        File file = CsvUtil.createCSVFile(listMap, map, path, fileName);

表格生成成功

==================从服务器上下载生成的表格到本地===========================

1、先获取到fileName,和path

2、设置请求和响应编码格式为UTF-8:

                                response.setContentType("text/html;charset=utf-8");

                                request.setCharacterEncoding("UTF-8");

3、创建输入输出流:BufferedInputStream bis = null;

                                BufferedOutputStream bos = null;

4、得到文件流大小:long fileLength = new File(path).length();

5、将数据塞到响应消息体:     response.setContentType("application/x-msdownload;");

                                                response.setHeader("Content-disposition", "attachment;

                                                                                  filename=" + new String(fileName.getBytes("utf-8"), "ISO8859-1"));

                                                response.setHeader("Content-Length", String.valueOf(fileLength));

6、将路径放到输入流

                bis = new BufferedInputStream(new FileInputStream(downLoadPath));

7、将响应体放到输出流

                bos = new BufferedOutputStream(response.getOutputStream());

8、读取输出流中的数据:
                byte[] buff = new byte[2048];
                int bytesRead;
                while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
                    bos.write(buff, 0, bytesRead);
                }

9、最后,删除服务器上的表:
            File f = new File(downLoadPath);
            if(f.exists()){
                f.delete();
            }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值