excel导出实现浏览器下载

@GetMapping(value ="export")
    private void export(HttpServletResponse response,HttpServletRequest request){

        ServletOutputStream out = null;
        FileInputStream ips = null;
        String url =  path // 文件路径
        try {

            log.error(url);
            //获取文件存放的路径
            File file = new File(url);
            if (!file.exists()) {
                //如果文件不存在就跳出
                log.error("导出文件不存在");
                throw new RuntimeException("导出失败!");
            }
            String fileName = file.getName();
            log.info("{}",fileName);
            ips = new FileInputStream(file);
            response.setContentType("multipart/form-data");
            //为文件重新设置名字,采用数据库内存储的文件名称
            response.addHeader("Content-Disposition", "attachment; filename=\"" + new String(fileName.getBytes("UTF-8"), "ISO8859-1") + "\"");
            out = response.getOutputStream();
            //读取文件流
            int len = 0;
            byte[] buffer = new byte[1024 * 10];
            while ((len = ips.read(buffer)) != -1) {
                out.write(buffer, 0, len);
            }
            out.flush();
        } catch (Exception e) {
            log.error(e.getMessage(), e);
            throw new RuntimeException("导出失败!");
        } finally {
            if (out != null) {
                try {
                    out.close();
                } catch (IOException e) {
                    log.error("关闭流出现异常-{}", e);
                }
            }
            if (ips != null) {
                try {
                    ips.close();
                } catch (IOException e) {
                    log.error("关闭流出现异常-{}", e);
                }
            }
        }

    }

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用 Servlet 实现 Excel 导出浏览器中,可以按照以下步骤进行: 1. 在 Servlet 中创建一个 POJO 类,用于存储 Excel 数据。 ``` public class ExcelData { private String name; private int age; private String gender; // 省略 getter 和 setter 方法 } ``` 2. 在 Servlet 中创建一个方法,用于生成 Excel 文件,并将其写入 HttpServletResponse 中,让浏览器下载。 ``` protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 创建 Excel 工作簿 XSSFWorkbook workbook = new XSSFWorkbook(); // 创建 Excel 表格 XSSFSheet sheet = workbook.createSheet("Sheet1"); // 创建表头 XSSFRow header = sheet.createRow(0); header.createCell(0).setCellValue("姓名"); header.createCell(1).setCellValue("年龄"); header.createCell(2).setCellValue("性别"); // 数据填充 List<ExcelData> dataList = getDataList(); for (int i = 0; i < dataList.size(); i++) { XSSFRow row = sheet.createRow(i + 1); row.createCell(0).setCellValue(dataList.get(i).getName()); row.createCell(1).setCellValue(dataList.get(i).getAge()); row.createCell(2).setCellValue(dataList.get(i).getGender()); } // 设置响应头 response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); response.setHeader("Content-Disposition", "attachment; filename=example.xlsx"); // 将 Excel 文件写入响应体 ServletOutputStream outputStream = response.getOutputStream(); workbook.write(outputStream); outputStream.flush(); outputStream.close(); } ``` 注意,上述代码中的 getDataList() 方法需要自己实现,用于获取 Excel 数据列表。 3. 在 web.xml 文件中配置 Servlet。 ``` <servlet> <servlet-name>ExcelServlet</servlet-name> <servlet-class>com.example.ExcelServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>ExcelServlet</servlet-name> <url-pattern>/export</url-pattern> </servlet-mapping> ``` 4. 在前端页面中添加一个下载按钮,点击按钮时向 Servlet 发送请求,即可下载 Excel 文件。 ``` <a href="/export" download>下载 Excel</a> ``` 注意,上述代码中的 /export 是 Servlet 的映射路径,需要根据实际情况修改。另外,download 属性用于指定文件的下载名称,可以根据实际情况修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值