java 实现 Excel下载

@RequestMapping(value = "value")
    public void downloadEQCSModel(HttpServletRequest request,HttpServletResponse response,HttpSession session) throws IOException {
        String file_name = "机台接触脚位模板.xlsx"; //要下载的文件名
        if(file_name == null){
            file_name="";
        }

        String url = session.getServletContext().getRealPath("/") + "excelFile\\机台接触脚位模板.xlsx";
        System.out.println("filedownload =" + url);
        response.setContentType("application/octet-stream");
        if (request.getHeader("user-agent").toLowerCase().indexOf("firefox") > -1) {
            //火狐浏览器自己会对URL进行一次URL转码所以区别处理
            response.setHeader("Content-Disposition", "attachment;filename="
                    + new String(file_name.getBytes("utf-8"), "ISO-8859-1"));
        } else {
            response.setHeader("Content-Disposition", "attachment;filename="
                    + URLEncoder.encode(file_name,"utf-8"));        }
        //新建文件输入输出流
        OutputStream output = null;
        FileInputStream fis = null;
        try{

            File f = new File(url);//新建File对象
            output = response.getOutputStream();//新建文件输入输出流对象
            fis = new FileInputStream(f);
            byte[] b = new byte[(int)f.length()]; //设置每次写入缓存大小

            //把输出流写入客户端
            int i = 0;
            while((i = fis.read(b)) > 0){
                output.write(b, 0, i);
            }
            output.flush();
        }
        catch(Exception e){
            e.printStackTrace();
        }
        finally
        {
            if(fis != null)
            {
                fis.close();
                fis = null;
            }
            if(output != null)
            {
                output.close();
                output = null;
            }
        }
    }

要在Java实现Excel文件的下载,你可以使用Apache POI库来生成Excel文件,并使用Java Servlet或Spring MVC来处理下载请求。以下是一个简单的示例代码: ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class ExcelDownloader { public static void downloadExcel(HttpServletResponse response) throws IOException { // 创建工作簿 Workbook workbook = new XSSFWorkbook(); // 创建工作表 Sheet sheet = workbook.createSheet("Sheet1"); // 创建行 Row headerRow = sheet.createRow(0); // 创建单元格 Cell headerCell1 = headerRow.createCell(0); headerCell1.setCellValue("姓名"); Cell headerCell2 = headerRow.createCell(1); headerCell2.setCellValue("年龄"); // 创建数据行 Row dataRow = sheet.createRow(1); Cell dataCell1 = dataRow.createCell(0); dataCell1.setCellValue("张三"); Cell dataCell2 = dataRow.createCell(1); dataCell2.setCellValue(25); // 设置响应头 response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); response.setHeader("Content-Disposition", "attachment; filename=example.xlsx"); // 写入响应流 workbook.write(response.getOutputStream()); workbook.close(); } } ``` 在你的Servlet或Controller中,调用`ExcelDownloader.downloadExcel(response)`方法来触发下载: ```java import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class MyServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ExcelDownloader.downloadExcel(response); } } ``` 这样,当你访问对应的Servlet或Controller时,就会自动下载名为"example.xlsx"的Excel文件。记得将代码中的内容替换为你实际需要的数据和文件名。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值