首页 > 其他分享 >以execl格式导出账单列表

以execl格式导出账单列表

时间:2024-10-31 14:59:49浏览次数:4  
标签:execl 账单 导出 bill Excel createCell setCellValue row

这个过程主要分为数据处理、Excel文件生成、文件响应给客户端等关键步骤。

1. 准备数据源

首先获取要导出的账单数据,从数据库中查询数据并将其封装为对象列表(如List)。每个对象代表一条账单记录,字段包含账单日期、金额等。

List<Bill> billList = billService.getAllBills();

2. 使用Apache POI库生成Excel文件

Apache POI库是Java中最常用的处理Excel文件的工具。可以通过创建工作簿(Workbook)、工作表(Sheet)、行(Row)和单元格(Cell)来生成Excel文件。

主要步骤:

  1. 添加Apache POI依赖
    pom.xml中添加POI依赖:

    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>5.0.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>5.0.0</version>
    </dependency>
    
  2. 创建Excel工作簿和工作表
    使用XSSFWorkbook创建一个工作簿,然后创建一个工作表:

    Workbook workbook = new XSSFWorkbook();
    Sheet sheet = workbook.createSheet("Bill List");
    
  3. 设置标题行
    设置Excel文件的标题行(表头):

    Row headerRow = sheet.createRow(0);
    String[] headers = {"xx", "xx", "xx", "xx"};
    for (int i = 0; i < headers.length; i++) {
        Cell cell = headerRow.createCell(i);
        cell.setCellValue(headers[i]);
    }
    
  4. 填充账单数据
    遍历账单列表,将每个账单信息填入Excel的行中:

    int rowNum = 1;
    for (Bill bill : billList) {
        Row row = sheet.createRow(rowNum++);
        row.createCell(0).setCellValue(bill.getId());
        row.createCell(1).setCellValue(bill.getDate().toString());
        row.createCell(2).setCellValue(bill.getAmount());
        row.createCell(3).setCellValue(bill.getCustomerName());
        row.createCell(4).setCellValue(bill.getStatus());
    }
    
  5. 自动调整列宽
    设置列宽自适应,以提高可读性:

    for (int i = 0; i < headers.length; i++) {
        sheet.autoSizeColumn(i);
    }
    

3. 将Excel文件写入输出流

在Java Web环境中,通常将Excel文件通过HTTP响应流传递给客户端。

  1. 设置响应头
    设置HTTP响应头,定义文件类型、文件名等信息:

    response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
    response.setHeader("Content-Disposition", "attachment; filename=BillList.xlsx");
    
  2. 将Excel文件写入响应输出流
    将Excel工作簿内容写入到ServletOutputStream中,使客户端能下载此文件:

    try (ServletOutputStream out = response.getOutputStream()) {
        workbook.write(out);
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        workbook.close();
    }
    

标签:execl,账单,导出,bill,Excel,createCell,setCellValue,row
From: https://www.cnblogs.com/hhhrjgc/p/18517837

相关文章

  • 管家婆工贸ERP BB067.销售订单修改BOM类型+BB068.销售单按模板导出Excel
    BB067.销售订单修改BOM类型最低适用版本:工贸系列23.0插件简要功能说明:销售订单任意状态下,支持通过应用按钮将焦点行的BOM类型修改为订单BOM更多细节描述见下方详细文档插件操作视频:进销存类定制插件--销售订单修改BOM类型插件详细功能文档:销售订单增加应......
  • 达梦客户端/idea连接达梦/达梦导出
    达梦自带的工具导出非常有缺陷大问题,所以使用idea连接达梦进行导出 一,下载达梦jdbc驱动达梦官网产品下载|达梦数据库(dameng.com)     二,idea添加driver在IntelliJIDEA中连接达梦数据库,可以按照以下步骤进行操作:1.打开IntelliJIDEA,进入项目。2.......
  • 记录NPOI导出Excel并使用不同颜色标注特定条件相同的行
    一、环境概述开发工具:VisualStudio2022.Net环境:.NetCore6.0相关依赖:NPOI二、基本概述需求要实现导出的数据里如果连续行满足某个条件就用颜色标记,但是标记的区间要用不同颜色区分开,用了双指针,但是是记录了起始位置和偏移量,封装比较屎,这里主要记录一下思想。三、代码实......
  • 淘宝商家电话采集工具 批量导出淘宝天猫商家联系方式软件 Python使用教程
    分享作者:下去沉淀沉淀吧1030249563(v)以Python为例,下面是一个简单的教程,来介绍如何使用python语音进行淘宝天猫商家爬虫。首先,我们需要安装以下库:requests,beautifulsoup4。可以使用以下命令进行安装:pipinstallrequestspipinstallbeautifulsoup4接下来,我们需要导入这些......
  • 统计项目中所有的Controller接口并导出
    packagecom.example.mock.controller;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RequestMethod;importorg.springframework.we......
  • DBeaver如何导出insert的sql数据
    前言我们在使用DBeaver连接数据库的时候,有时候需要将数据库某张表的数据全部导出,用于导入到其他的数据库。一般导出的格式有csv,也要sql语句,今天就来介绍下如何导出sql语句。这样在其他新的数据库中,就能直接执行插入了。如何操作首先,我们点击下我们要导出的数据库表,然后鼠标右击......
  • Vue3 - 完美解决html2canvas截图不全问题,截图只截取当前可视区域导出图片不全,截屏导出
    前言该解决方案任意前端技术栈通用,不仅限Vue。在vue3(手机H5移动端/微信公众号H5页面)项目开发中,使用html2canvas截屏时发现有一部分未截取到少了一块截图不完整,导出保存图片时发现截图只有一半显示不全,另外还有一个问题就是截图时截取当前可视区域的问题(出现滚动条只保......
  • GaussDB 数据导入导出工具介绍
    一、数据导入导出场景划分gsql工具适用场景和使用方法适用场景文本格式对象定义的创建使用方法gsql-ddb1-p16000-Uu1-WHuawei@123-f/data/table.sql示例:ALTERSESSIONSETCURRENT_SCHEMA=PUBLIC;ALTERTABLE"PUBLC".GA_COM_COLLECTION_ERROR_TABLEMODIF......
  • Java EasyExcel 导出报内存溢出如何解决
    大家好,我是V哥。使用EasyExcel进行大数据量导出时容易导致内存溢出,特别是在导出百万级别的数据时。你有遇到过这种情况吗,以下是V哥整理的解决该问题的一些常见方法,分享给大家,欢迎一起讨论:EasyExcel大数据量导出常见方法1.分批写入EasyExcel支持分批写入数据,可以将数据分批......
  • [解决方案] 几十行就能导出博客园文章的 shell 脚本
    几十行就能导出博客园文章的shell脚本CNBLOG_USER和CNBLOG_TOKEN不建议粘贴直接放在脚本中,放在环境变量中执行更安全一些,不容易暴露token。#!/bin/bashsync_cnblog(){API_URL="https://i.cnblogs.com/api/posts/list"#exportCNBLOG_USER=xxx#export......