Poi导出Excil

事例:按照下图所属内容,根据商品类型进行合并单元格,EsayPoi可能无法满足其需求,因此考虑了poi

前端展示如上图所示
前端页面展示如上图
导出效果图
在这里插入图片描述
具体代码如下:

		//poi导出excil
        //创建一个Workbook,对应一个Excel文件
        HSSFWorkbook wb = new HSSFWorkbook();
        //sheet名称
        String sheetName = "展示数据记录";
        //标题
        String title = "展示数据记录";
        //表头
        String[] row_first = {"名称", "商品类型", "单位", "实时", "账面", " 差额"};
        //设置sheet名称  标题   表头
         final HSSFSheet sheet = PoiUtil.createSheetTitleAndFirstRow(wb, sheetName, title, row_first, 5, inventoryStatisticsVOS);
        //合并单元格
        if (num != 1 && cellRange.get() == 1) {
            sheet.addMergedRegion(new CellRangeAddress(2, 2 + num - 1, 4, 4));
            sheet.addMergedRegion(new CellRangeAddress(2, 2 + num - 1, 5, 5));
        }
        //导出
        String fileName = "展示数据记录.xls";
        PoiUtil.exportExcel(fileName, httpServletResponse, wb);
        return ResultVO.success("导出记录成功", null);

PoiUtil中代码如下

/**
    *@Description: 设置sheet名称  标题  表头 num 代表表头列数
    */
    public static HSSFSheet createSheetTitleAndFirstRow(HSSFWorkbook wb,String sheetName, String title, String[] row_first, Integer num, List<InventoryStatisticsVO> inventoryStatisticsVOS) {
        //poi导出excil
        //创建一个Workbook,对应一个Excel文件
//        HSSFWorkbook wb = new HSSFWorkbook();
        //在Workbook中添加一个sheet,对应Excel文件中的sheet
        HSSFSheet sheet = wb.createSheet(sheetName);
        sheet.setDefaultColumnWidth(20);
        //设置样式以及字体样式
        HSSFCellStyle titleStyle = PoiUtil.createTitleCellStyle(wb);
        HSSFCellStyle headerStyle = PoiUtil.createHeadCellStyle(wb);
        HSSFCellStyle contentStyle = PoiUtil.createContentCellStyle(wb);
        //创建标题 ,合并标题单元格
        // 行号
        int rowNum = 0;
        // 创建第一页的第一行,索引从0开始
        HSSFRow row0 = sheet.createRow(rowNum++);
        row0.setHeight((short) 800);// 设置行高
//      String title = "展示数据记录";
        HSSFCell c00 = row0.createCell(0);
        c00.setCellValue(title);
        c00.setCellStyle(titleStyle);
        // 合并单元格,参数依次为起始行,结束行,起始列,结束列 (索引0开始)
        //标题合并单元格操作,5为总列数
        sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, num));
        // 第二行
        HSSFRow row1 = sheet.createRow(rowNum++);
        row1.setHeight((short) 500);
        for (int i = 0; i < row_first.length; i++) {
            HSSFCell tempCell = row1.createCell(i);
            tempCell.setCellStyle(headerStyle);
            tempCell.setCellValue(row_first[i]);
        }
        //循环每一行数据
        for (InventoryStatisticsVO inventoryStatisticsVO : inventoryStatisticsVOS) {
            HSSFRow tempRow = sheet.createRow(rowNum++);
            tempRow.setHeight((short) 500);
            // 循环单元格填入数据
            for (int j = 0; j < 6; j++) {
                HSSFCell tempCell = tempRow.createCell(j);
                tempCell.setCellStyle(contentStyle);
                String tempValue;
                if (j == 0) {
                    // 名称
                    tempValue = inventoryStatisticsVO.getStoreHouse();
                } else if (j == 1) {
                    // 类型
                    tempValue = inventoryStatisticsVO.getGoodsType();
                } else if (j == 2) {
                    // 单位
                    tempValue = inventoryStatisticsVO.getUnit();
                } else if (j == 3) {
                    // 实时
                    tempValue = inventoryStatisticsVO.getRealTimeInventory().toString();
                } else if (j == 4) {
                    // 账面
                    tempValue = inventoryStatisticsVO.getBookInventory().toString();
                } else {
                    // 差额
                    tempValue = inventoryStatisticsVO.getInventoryBalance().toString();
                }
                tempCell.setCellValue(tempValue);
            }
        }
        return sheet;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Java的POI导出Excel文件的步骤: 1. 首先,需要在项目中引入POI的依赖,可以通过Maven或手动下载jar包的方式引入。 2. 创建一个工作簿对象,可以通过HSSFWorkbook或XSSFWorkbook类来创建,前者用于创建xls格式的Excel文件,后者用于创建xlsx格式的Excel文件。 3. 创建一个工作表对象,可以通过工作簿对象的createSheet()方法来创建。 4. 创建行和单元格对象,可以通过工作表对象的createRow()和createCell()方法来创建。 5. 设置单元格的值,可以通过单元格对象的setCellValue()方法来设置。 6. 将工作簿对象写入到输出流中,可以通过工作簿对象的write()方法来实现。 以下是一个简单的示例代码,用于将数据导出Excel文件中: ```java import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; public class ExcelExporter { public static void export() throws IOException { // 创建工作簿对象 Workbook workbook = new HSSFWorkbook(); // 创建工作表对象 Sheet sheet = workbook.createSheet("Sheet1"); // 创建行对象 Row row = sheet.createRow(0); // 创建单元格对象 Cell cell = row.createCell(0); // 设置单元格的值 cell.setCellValue("Hello, World!"); // 将工作簿对象写入到输出流中 FileOutputStream fos = new FileOutputStream("output.xls"); workbook.write(fos); fos.close(); } } ``` 调用export()方法即可将数据导出到名为output.xls的Excel文件中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值