将数据库的表通过浏览器下载导出生成Excel文件

在做完报表和后台展示后,前辈让我做一下将数据导出到本地即:点击导出跳转浏览器下载excel文件到本地。

    String startTime = getParam("startTime");
    String endTime = getParam("endTime");
    //先设置下载后的文件名
    String fileName = "xxxxx" + now() + ".xlsx";

    //根据筛选项 获取办理明细表所需要的数据
    QueryWrapper<H5XrdlbReport> queryWrapper = new QueryWrapper<>();
    if (StrUtil.isNotBlank(startTime) && StrUtil.isNotBlank(endTime)){
        queryWrapper.ge("date",startTime).le("date",endTime);
    }
    queryWrapper.orderByDesc("date"); // 按时间降序排列
    List<H5XrdlbReport> data =h5XrdlbService.list(queryWrapper);
    //设置响应类型为excel
    response.setContentType("application/vnd.ms-excel;charset=utf-8");
    //告诉浏览器下载这个附件
    response.setHeader("Access-Control-Allow-Origin", "*");
    response.setHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes("utf-8"), "ISO-8859-1"));
    //7列数据
    String[] titles = {"日期", "渠道", "标识码", "当日访问量", "当月访问量","当日访问人数","当月访问人数"};
    //sheet中数据 封装
    String[][] values = new String[data.size()][7];
    for (int i = 0; i < data.size(); i++) {
        values[i][0] = String.valueOf(data.get(i).getDate()); //日期
        values[i][1] = String.valueOf(data.get(i).getFromAppType()); // 渠道
        values[i][2] = String.valueOf(data.get(i).getChannel()); // 分类
        values[i][3] = String.valueOf(data.get(i).getDvn()); // 当日访问量
        values[i][4] = String.valueOf(data.get(i).getMvn()); // 当月访问量
        values[i][5] = String.valueOf(data.get(i).getDvnd()); // 当日访问人数
        values[i][6] = String.valueOf(data.get(i).getMvnd()); // 当月访问人数
    }
    //输出excel文件
    SXSSFWorkbook workbook = ExcelUtil.getHSSFWorkbook("xxxxxxxxxxxx", titles, values, new SXSSFWorkbook());

    ServletOutputStream outputStream = null;
    try {
        //将Excel写入到响应流中
        outputStream = response.getOutputStream();
        workbook.write(outputStream);

        //强制推送缓存到响应流中
        outputStream.flush();
        //关闭响应流
        outputStream.close();
        saveOperateLog("xxxxxx", "xxxxxxxxxxxx");
        //关闭Excel工作簿
        workbook.close();
        return  toJson(R.me().ok());
    } catch (IOException e) {
        e.printStackTrace();
        return  toJson(R.me().fail("导出失败"));
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要实现从网页中将MySQL数据导出Excel,可以使用PHPExcel库来完成。以下是一个简单的示例代码: ```php <?php require_once 'PHPExcel.php'; // 连接MySQL数据库 $conn = mysqli_connect('localhost', 'username', 'password', 'database_name'); // 查询数据 $sql = "SELECT * FROM table_name"; $result = mysqli_query($conn, $sql); // 创建Excel对象 $objPHPExcel = new PHPExcel(); // 设置Excel格的头部信息 $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A1', 'ID') ->setCellValue('B1', 'Name') ->setCellValue('C1', 'Age') ->setCellValue('D1', 'Address'); // 遍历数据,将数据写入Excel格中 $i = 2; while ($row = mysqli_fetch_assoc($result)) { $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A' . $i, $row['id']) ->setCellValue('B' . $i, $row['name']) ->setCellValue('C' . $i, $row['age']) ->setCellValue('D' . $i, $row['address']); $i++; } // 设置Excel格的文件名和类型 $filename = 'data_' . date('YmdHis') . '.xls'; header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="' . $filename . '"'); header('Cache-Control: max-age=0'); // 将Excel格输出到浏览器 $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); ``` 在上面的代码中,需要修改的地方有: - MySQL数据库的连接信息(主机名、用户名、密码、数据库名) - 数据名和列名 - Excel格的头部信息(可以根据需要自行修改) - Excel格的文件名 将代码保存为一个PHP文件,然后在网页中访问该文件即可下载生成Excel格。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值