java 读取数据库数据并下载为Excel

java 读取数据库数据并下载为Excel

前台

html

<input type="button" id="javaExcel" value="java下载表格">

script

<script>
    $("#javaExcel").click(function () {
        $.ajax({
            type: "POST",
            url: "../java/excel",
            data:{name:"javaExcel"},
            dataType: "json",
            success: function (data) {
                alert(data.status);
            },
            error:function () {
                alert("错误")
            }
        });
    })
</script>

controller

private Map excel(){
        Map map =new HashMap();
        map.put("status","false");
        try {
            log.info("recent inactive hospital statistics start");
            //命名行名
            List<String> cellNameList = new ArrayList<>();
            cellNameList.add("医院id");
            cellNameList.add("医院名称");
            cellNameList.add("渠道号");
            cellNameList.add("联系人");
            cellNameList.add("总关注数");
            cellNameList.add("不活跃天数");
            cellNameList.add("最后活跃日期");
            cellNameList.add("申请日期");
            cellNameList.add("创建天数");
            //给文件命名及设置路径,如果该路径下有该文件则覆盖该文件
            String excelPath="/Users/user/Desktop/不活泼医院信息.xls";
            //给表命名
            String title=LocalDate.now().minusDays(14)+"至"+LocalDate.now().minusDays(8)+"不活泼医院信息";
            HSSFWorkbook excel = Excel.createExcel(title, cellNameList);
            //写数据,这里随便写点数据(可以从数据库读数据然后循环写)
            for(int i=1;i<5;i++){
                List<String> excelData = new ArrayList<>();
                excelData.add(i+"");
                excelData.add("name");
                excelData.add(i+"");
                excelData.add("联系人");
                excelData.add("总关注数");
                excelData.add("不活跃天数");
                excelData.add("最后活跃日期");
                excelData.add("申请日期");
                excelData.add("创建天数");
                excel = Excel.createExcelData(excel, excelData, i);
            }
            //输出数据
            FileOutputStream fos = new FileOutputStream(excelPath);
            excel.write(fos);
            fos.close();
            map.put("status","true");
        } catch (Exception e) {
            e.printStackTrace();
        }

        return map;
    }

util包的工具类

public class Excel {

    public static HSSFWorkbook createExcel(String sheetName, List<String> cellNameList) {

        HSSFWorkbook excel = new HSSFWorkbook();
        HSSFSheet sheet = excel.createSheet(sheetName);
        HSSFRow row = sheet.createRow(0);
        int cellIndex = 0;
        for (String cellName : cellNameList) {
            HSSFCell cell = row.createCell(cellIndex);
            cell.setCellValue(cellName);
            cellIndex++;
        }
        return excel;
    }

    public static HSSFWorkbook createExcelData(HSSFWorkbook excel, List<String> excelData,int rowIndex){
        HSSFRow row=excel.getSheetAt(0).createRow(rowIndex);
        for(int i = 0; i < excelData.size(); i++){
            row.createCell(i).setCellValue(excelData.get(i));
        }
        return excel;
    }


}
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值