Excel导出

本文详细介绍了如何使用JavaScript生成并下载Excel文件的过程,包括前端表单的配置、服务器端处理逻辑、以及数据的组织与展示。通过设置Content-disposition、ContentType等头部信息,实现文件的正确下载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//form表单请求
		var url="<%=path%>/xxxx/export.action?groupId="+groupId+"&aaa="+aaa;
		$("#exportForm").attr("action",url);
	
		$("#exportForm").submit();
public String export()
	{	
		HttpServletResponse response = null;

        OutputStream out = null;

        try
        {
            
            response = ServletActionContext.getResponse();

            out = response.getOutputStream();

            response.setHeader("Content-disposition", "attachment; filename=" + "export.xls");

            response.setContentType("application/msexcel;charset=UTF-8");// 设置类型

            response.setHeader("Pragma", "No-cache");// 设置头

            response.setHeader("Cache-Control", "no-cache");// 设置头

            response.setDateHeader("Expires", 0);// 设置日期头

            String groupId = getRequest().getParameter("groupId");

            String aaa = getRequest().getParameter("aaa");
			//处理中文乱码
            aaa = new String(aaa.getBytes("ISO8859-1"), "UTF-8");

            // 设置表头
            String[] tableHeader = { "表头1", "表头2"};

            short cellNumber = (short) tableHeader.length;// 表的列数

            HSSFWorkbook workbook = new HSSFWorkbook(); // 创建一个excel

            HSSFCell cell = null; // Excel的列

            HSSFRow row = null; // Excel的行

            HSSFSheet sheet = workbook.createSheet("sheet1"); // 创建一个sheet

            HSSFHeader header = sheet.getHeader();// 设置sheet的头

            header.setCenter("表");

            row = sheet.createRow(0);

            row.setHeight((short) 400);

            for (int k = 0; k < cellNumber; k++)
            {
                cell = row.createCell(k);// 创建第0行第k列

                sheet.setColumnWidth(k, 4000);// 设置列的宽度

                cell.setCellValue(tableHeader[k]);// 设置第0行第k列的值

            }
            //获取数据源
            List<xxx> actList = xxxService.getPageList();

            int i = 0;

            for (xxxx p : actList)
            {
                row = sheet.createRow((short) (i + 1));// 创建第i+1行

                cell = row.createCell(0);// 创建第i+1行第0列
                cell.setCellValue("值1");// 设置第i+1行第0列的值

                cell = row.createCell(1);
                cell.setCellValue("值2");

                ++i;
            }
            workbook.write(out);
            out.flush();
            workbook.write(out);
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        finally
        {
            try
            {
                if (out != null)
                {
                    out.close();
                }
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
        }
        return null;
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值