欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java使用poi自定義excel標(biāo)題頭并導(dǎo)出方式

 更新時(shí)間:2025年04月09日 15:44:07   作者:jilke  
這篇文章主要介紹了java使用poi自定義excel標(biāo)題頭并導(dǎo)出方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

java使用poi自定義excel標(biāo)題頭并導(dǎo)出

  • 1、創(chuàng)建XSSFWorkbook對(duì)象(也就是excel文檔對(duì)象)
  • 2、通過(guò)XSSFWorkbook對(duì)象創(chuàng)建sheet對(duì)象(也就是excel中的sheet)
  • 3、通過(guò)sheet對(duì)象創(chuàng)建XSSFRow對(duì)象(row行對(duì)象)
  • 4、通過(guò)XSSFRow對(duì)象創(chuàng)建列cell并set值(列名)
  • 5、處理數(shù)據(jù)循環(huán)表頭(業(yè)務(wù)需要)

service impl層

@Override
    public StatisticalReportResultDTO getStatisticalExcelReport(StatisticalReportQuery query) {
        // 查詢(xún)條件
        StatisticalReportPageVO queryVO = StatisticalReportConverter.queryToDO(query);
        LambdaQueryWrapper<StatisticalReportPageVO> queryWrapper = new LambdaQueryWrapper<StatisticalReportPageVO>();
        // 年月  轉(zhuǎn)換為 時(shí)間段 
        if (query.getStatisticalPeriodStartTime() != null && query.getStatisticalPeriodEndTime() != null) {
            queryVO.setStatisticalPeriodStartTime(query.getStatisticalPeriodStartTime());
            queryVO.setStatisticalPeriodEndTime(query.getStatisticalPeriodEndTime());
        }
        if (StringUtils.isNotBlank(query.getTaxId())) {
            String[] taxIds = query.getTaxId().split(",");
            queryVO.setTaxId(taxIds);
        }
        queryWrapper.setEntity(queryVO);
 
        // 列表
        List<StatisticalReportDTO> list = statisticalReportMapper.getStatisticalExcelReport(queryWrapper);
        StatisticalReportResultDTO statisticalReportResultDTO = new StatisticalReportResultDTO();
        StatisticalReportDTO total = new StatisticalReportDTO();
        if (CollectionUtils.isNotEmpty(list)) {
            BigDecimal zero = BigDecimal.ZERO;
            BigDecimal amount = zero, districtRetainedAmount = zero, districtIncentiveAmountReceivable = zero, districtRewardAmountActuallyReceived = zero, tnIncome = zero,
                    intermediaryIncome = zero, enterpriseIncome = zero;
            for (StatisticalReportDTO vo : list) {
                //比例回顯
                if (vo.getDistrictRetentionRatio() != null) {
                    BigDecimal districtRetentionRatio = vo.getDistrictRetentionRatio();
                    BigDecimal percentage = new BigDecimal(100);
                    BigDecimal newDistrictRetentionRatio = districtRetentionRatio.multiply(percentage).setScale(2, RoundingMode.HALF_UP);//保留兩位小數(shù);
 
                    vo.setDistrictRetentionRatio(newDistrictRetentionRatio);
                }
                if (vo.getDistrictRewardRatio() != null) {
                    BigDecimal districtRewardRatio = vo.getDistrictRewardRatio();
                    BigDecimal percentage = new BigDecimal(100);
                    BigDecimal newDistrictRewardRatio = districtRewardRatio.multiply(percentage).setScale(2, RoundingMode.HALF_UP);//保留兩位小數(shù);
                    vo.setDistrictRewardRatio(newDistrictRewardRatio);
                }
                // 計(jì)算總合計(jì)
                amount = amount.add(vo.getAmount() != null ? vo.getAmount() : zero);
                districtRetainedAmount = districtRetainedAmount.add(vo.getDistrictRetainedAmount() != null ? vo.getDistrictRetainedAmount() : zero);
                districtIncentiveAmountReceivable = districtIncentiveAmountReceivable
                        .add(vo.getDistrictIncentiveAmountReceivable() != null ? vo.getDistrictIncentiveAmountReceivable() : zero);
                districtRewardAmountActuallyReceived = districtRewardAmountActuallyReceived
                        .add(vo.getDistrictRewardAmountActuallyReceived() != null ? vo.getDistrictRewardAmountActuallyReceived() : zero);
                tnIncome = tnIncome.add(vo.getTnIncome() != null ? vo.getTnIncome() : zero);
                intermediaryIncome = intermediaryIncome.add(vo.getIntermediaryIncome() != null ? vo.getIntermediaryIncome() : zero);
                enterpriseIncome = enterpriseIncome.add(vo.getEnterpriseIncome() != null ? vo.getEnterpriseIncome() : zero);
            }
            total.setAmount(amount);
            total.setDistrictRewardAmountActuallyReceived(districtRewardAmountActuallyReceived);
            total.setDistrictRetainedAmount(districtRetainedAmount);
            total.setDistrictIncentiveAmountReceivable(districtIncentiveAmountReceivable);
            total.setTnIncome(tnIncome);
            total.setIntermediaryIncome(intermediaryIncome);
            total.setEnterpriseIncome(enterpriseIncome);
        }
        statisticalReportResultDTO.setList(list);
 
        statisticalReportResultDTO.setTotal(total);
        return statisticalReportResultDTO;
    }

controller層 

/**
      * @description excel導(dǎo)出數(shù)據(jù)
      * @version 1.0
      * @author jlk
      * @date 2022年01月27日
      * @param query
     */
    @ApiOperation(value = "獲取Excel導(dǎo)出數(shù)據(jù)  作者:jlk 日期:  2022年01月27日")
    @GetMapping(value = "/getExcelExport")
    public void getExcelExport(HttpServletRequest request, HttpServletResponse response, StatisticalReportQuery query) {
        StatisticalReportResultDTO statisticalReportResultDTO = statisticalReportService.getStatisticalExcelReport(query);
        List<StatisticalReportConditionDTO> statisticalReportConditionDTOList = statisticalReportService.getExcelReportCondition(query);
        String fileName = "總部經(jīng)濟(jì)-統(tǒng)計(jì)報(bào)表" + System.currentTimeMillis();
        //調(diào)用poi導(dǎo)出Excel
        ExcelUtil.poiExportExcel(statisticalReportResultDTO, statisticalReportConditionDTOList, query, fileName, response);
 
    }

ExcelUtil工具類(lèi)

@SuppressWarnings("resource")
    public static void poiExportExcel(StatisticalReportResultDTO statisticalReportResultDTO, List<StatisticalReportConditionDTO> statisticalReportConditionDTOList,
            StatisticalReportQuery query, String fileName, HttpServletResponse response) {
        try {
            List<StatisticalReportDTO> statisticalReportList = statisticalReportResultDTO.getList();
            XSSFWorkbook wb = new XSSFWorkbook();
            XSSFRow row = null;
            XSSFCell cell = null;
            // 建立新的sheet對(duì)象(excel的表單) 并設(shè)置sheet名字
            XSSFSheet sheet = wb.createSheet("統(tǒng)計(jì)報(bào)表");
            sheet.setDefaultRowHeightInPoints(20);
            sheet.setDefaultColumnWidth(12);
            //----------------標(biāo)題樣式--------------------------------
            XSSFCellStyle titleStyle = wb.createCellStyle(); //標(biāo)題樣式
            titleStyle.setAlignment(HorizontalAlignment.CENTER);
            titleStyle.setVerticalAlignment(VerticalAlignment.CENTER);
            Font ztFont = wb.createFont();
            ztFont.setItalic(false); // 設(shè)置字體為斜體字   
            //ztFont.setColor(Font.COLOR_NORMAL);            // 將字體設(shè)置為“紅色”   
            ztFont.setFontHeightInPoints((short) 16); // 將字體大小設(shè)置為18px   
            ztFont.setFontName("宋體"); // 將“宋體”字體應(yīng)用到當(dāng)前單元格上  
            ztFont.setBold(true); //加粗
            //ztFont.setUnderline(Font.U_DOUBLE);// 添加(Font.U_SINGLE單條下劃線/Font.U_DOUBLE雙條下劃線)   
            //ztFont.setStrikeout(true);// 是否添加刪除線   
            titleStyle.setFont(ztFont);
            //------------------------------------------------------------
            //----------------二級(jí)標(biāo)題格樣式----------------------------------
            XSSFCellStyle titleStyle2 = wb.createCellStyle(); //表格樣式
            titleStyle2.setAlignment(HorizontalAlignment.CENTER);
            titleStyle2.setVerticalAlignment(VerticalAlignment.CENTER);
            
            titleStyle2.setBorderBottom(BorderStyle.THIN);//下邊框  
            titleStyle2.setBorderLeft(BorderStyle.THIN);//左邊框  
            titleStyle2.setBorderRight(BorderStyle.THIN);//右邊框  
            titleStyle2.setBorderTop(BorderStyle.THIN);//上邊框
            
            Font ztFont2 = wb.createFont();
            ztFont2.setItalic(false); // 設(shè)置字體為斜體字   
            ztFont2.setColor(Font.COLOR_NORMAL); // 將字體設(shè)置為“紅色”   
            ztFont2.setFontHeightInPoints((short) 10); // 將字體大小設(shè)置為18px   
            ztFont2.setFontName("宋體"); // 字體應(yīng)用到當(dāng)前單元格上   
            ztFont2.setBold(true); //加粗
            //ztFont.setUnderline(Font.U_DOUBLE);// 添加(Font.U_SINGLE單條下劃線/Font.U_DOUBLE雙條下劃線)   
            //ztFont.setStrikeout(true);// 是否添加刪除線   
            titleStyle2.setFont(ztFont2);
            titleStyle2.setWrapText(true);//設(shè)置自動(dòng)換行
            //----------------------------------------------------------
            //----------------單元格樣式-----------------------------------
            XSSFCellStyle cellStyle = wb.createCellStyle(); //表格樣式
            cellStyle.setAlignment(HorizontalAlignment.CENTER);
            cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
 
            cellStyle.setBorderBottom(BorderStyle.THIN);//下邊框  
            cellStyle.setBorderLeft(BorderStyle.THIN);//左邊框  
            cellStyle.setBorderRight(BorderStyle.THIN);//右邊框  
            cellStyle.setBorderTop(BorderStyle.THIN);//上邊框
 
            Font cellFont = wb.createFont();
            cellFont.setItalic(false); // 設(shè)置字體為斜體字   
            cellFont.setColor(Font.COLOR_NORMAL); // 將字體設(shè)置為“紅色”   
            cellFont.setFontHeightInPoints((short) 9); // 將字體大小設(shè)置為18px   
            cellFont.setFontName("宋體"); // 字體應(yīng)用到當(dāng)前單元格上   
            cellStyle.setFont(cellFont);
            cellStyle.setWrapText(true);//設(shè)置自動(dòng)換行
            //----------------------------------------------------------
 
            // ----------------------創(chuàng)建第一行----------------------------
            // 在sheet里創(chuàng)建第一行,參數(shù)為行索引(excel的行),可以是0~65535之間的任何一個(gè)
            row = sheet.createRow(0);
            // 創(chuàng)建單元格(excel的單元格,參數(shù)為列索引,可以是0~255之間的任何一個(gè)
            cell = row.createCell(0);
            // 合并單元格CellRangeAddress構(gòu)造參數(shù)依次表示起始行,截至行,起始列, 截至列
            sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 10));
            // 設(shè)置單元格內(nèi)容
            String titleName = "天能招引企業(yè)財(cái)政獎(jiǎng)勵(lì)及分配明細(xì)";
            if (query.getStatisticalPeriodStartTime() != null && query.getStatisticalPeriodEndTime() != null) {
                LocalDateTime startTime = query.getStatisticalPeriodStartTime();
                LocalDateTime endTime = query.getStatisticalPeriodEndTime();
                String startY = String.valueOf(startTime.getYear());
                String startM = String.valueOf(startTime.getMonthValue());
 
                String endY = String.valueOf(endTime.getYear());
                String endM = String.valueOf(endTime.getMonthValue());
 
                titleName = titleName + "(" + startY + "年" + startM + "月-" + endY + "年" + endM + "月)";
            }
            cell.setCellValue(titleName);
            cell.setCellStyle(titleStyle);
            // --------------------------------------------------
            // ------------------處理數(shù)據(jù)start---------------------
            if (CollectionUtils.isNotEmpty(statisticalReportConditionDTOList)) {
                int rowNum = 1;
                for (int i = 0; i < statisticalReportConditionDTOList.size(); i++) {
                    StatisticalReportConditionDTO statisticalReportConditionDTO = statisticalReportConditionDTOList.get(i);
                    String name = "";
                    if (!StringUtils.isEmpty(statisticalReportConditionDTO.getDealerName())) {
                        name = statisticalReportConditionDTO.getDealerName();
                    }
                    rowNum = rowNum + i;
                    creatCell(sheet, row, cell, titleStyle2, rowNum, name);
                    rowNum = rowNum + 1;
                    if (CollectionUtils.isNotEmpty(statisticalReportList)) {
 
                        BigDecimal zero = BigDecimal.ZERO;
                        BigDecimal amount = zero, districtRetainedAmount = zero, districtIncentiveAmountReceivable = zero, districtRewardAmountActuallyReceived = zero,
                                tnIncome = zero, intermediaryIncome = zero, enterpriseIncome = zero;
                        int mergeSize = 0;
                        String dealerId = "";
                        for (int j = 0; j < statisticalReportList.size(); j++) {
                            List<Object> data = new ArrayList<>();
                            int size = 0;
                            StatisticalReportDTO statisticalReportDTO = statisticalReportList.get(j);
                            if (statisticalReportConditionDTO.getEnterpriseId().equals(statisticalReportDTO.getEnterpriseId())
                                    && statisticalReportConditionDTO.getStatisticalYear().equals(statisticalReportDTO.getStatisticalYear())
                                    && statisticalReportConditionDTO.getStatisticsQuarter().equals(statisticalReportDTO.getStatisticsQuarter())) {
                                dealerId = statisticalReportDTO.getDealerId();
                                // 計(jì)算總合計(jì)
                                amount = amount.add(statisticalReportDTO.getAmount() != null ? statisticalReportDTO.getAmount() : zero);
                                districtRetainedAmount = districtRetainedAmount
                                        .add(statisticalReportDTO.getDistrictRetainedAmount() != null ? statisticalReportDTO.getDistrictRetainedAmount() : zero);
                                districtIncentiveAmountReceivable = districtIncentiveAmountReceivable.add(
                                    statisticalReportDTO.getDistrictIncentiveAmountReceivable() != null ? statisticalReportDTO.getDistrictIncentiveAmountReceivable() : zero);
                                districtRewardAmountActuallyReceived = districtRewardAmountActuallyReceived.add(
                                    statisticalReportDTO.getDistrictRewardAmountActuallyReceived() != null ? statisticalReportDTO.getDistrictRewardAmountActuallyReceived() : zero);
                                tnIncome = tnIncome.add(statisticalReportDTO.getTnIncome() != null ? statisticalReportDTO.getTnIncome() : zero);
                                intermediaryIncome = intermediaryIncome
                                        .add(statisticalReportDTO.getIntermediaryIncome() != null ? statisticalReportDTO.getIntermediaryIncome() : zero);
                                enterpriseIncome = enterpriseIncome.add(statisticalReportDTO.getEnterpriseIncome() != null ? statisticalReportDTO.getEnterpriseIncome() : zero);
 
                                data.add(statisticalReportDTO.getEnterpriseName());
                                data.add(statisticalReportDTO.getTaxName());
                                data.add(retain2Decimals(statisticalReportDTO.getAmount()));
                                data.add(statisticalReportDTO.getDistrictRetentionRatio() + "%");
                                data.add(retain2Decimals(statisticalReportDTO.getDistrictRetainedAmount()));
                                data.add(statisticalReportDTO.getDistrictRewardRatio() + "%");
                                data.add(retain2Decimals(statisticalReportDTO.getDistrictIncentiveAmountReceivable()));
                                data.add(retain2Decimals(statisticalReportDTO.getTnIncome()));
                                if(!StringUtils.isEmpty(statisticalReportDTO.getDealerId())){
                                    data.add(retain2Decimals(statisticalReportDTO.getIntermediaryIncome()));
                                }else{
                                    data.add("");
                                }
                                data.add(retain2Decimals(statisticalReportDTO.getEnterpriseIncome()));
                                if (!StringUtils.isEmpty(statisticalReportDTO.getRemark())) {
                                    data.add(statisticalReportDTO.getRemark());
                                } else {
                                    data.add("");
                                }
                                mergeSize++;
                                size++;
                                rowNum = rowNum + size; //從第三行開(kāi)始
                                row = sheet.createRow(rowNum);
                                for (int k = 0; k < data.size(); k++) { //將數(shù)據(jù)添加到單元格中    
                                    cell = row.createCell(k);
                                    cell.setCellValue("" + data.get(k) + "");
                                    cell.setCellStyle(cellStyle);
                                }
                            }
                        }
                        if (mergeSize > 0) {
 
                            rowNum = rowNum + 1;
                            row = sheet.createRow(rowNum);
 
                            cell = row.createCell(0);
                            cell.setCellStyle(cellStyle);
 
                            cell = row.createCell(1);
                            cell.setCellValue("小計(jì)(元)");
                            cell.setCellStyle(cellStyle);
 
                            cell = row.createCell(2);
                            cell.setCellValue("" + retain2Decimals(amount) + "");
                            cell.setCellStyle(cellStyle);
 
                            cell = row.createCell(3);
                            cell.setCellStyle(cellStyle);
 
                            cell = row.createCell(4);
                            cell.setCellValue("" + retain2Decimals(districtRetainedAmount) + "");
                            cell.setCellStyle(cellStyle);
 
                            cell = row.createCell(5);
                            cell.setCellStyle(cellStyle);
 
                            cell = row.createCell(6);
                            cell.setCellValue("" + retain2Decimals(districtIncentiveAmountReceivable) + "");
                            cell.setCellStyle(cellStyle);
 
                            cell = row.createCell(7);
                            cell.setCellValue("" + retain2Decimals(tnIncome) + "");
                            cell.setCellStyle(cellStyle);
 
                            cell = row.createCell(8);
                            if(!StringUtils.isEmpty(dealerId)){
                                cell.setCellValue("" + retain2Decimals(intermediaryIncome) + "");
                            }
                            cell.setCellStyle(cellStyle);
 
                            cell = row.createCell(9);
                            cell.setCellValue("" + retain2Decimals(enterpriseIncome) + "");
                            cell.setCellStyle(cellStyle);
 
                            cell = row.createCell(10);
                            cell.setCellStyle(cellStyle);
 
                            sheet.addMergedRegion(new CellRangeAddress(rowNum - mergeSize, rowNum, 0, 0));
                            sheet.addMergedRegion(new CellRangeAddress(rowNum - mergeSize, rowNum, 10, 10));
                        }
                    }
                }
                StatisticalReportDTO total = statisticalReportResultDTO.getTotal();
                if (total != null) {
 
                    rowNum = rowNum + 1;
                    row = sheet.createRow(rowNum);
 
                    XSSFCellStyle cellStyleTotal = wb.createCellStyle(); //表格樣式
                    cellStyleTotal.setFillForegroundColor(IndexedColors.YELLOW.getIndex());
                    cellStyleTotal.setFillPattern(FillPatternType.SOLID_FOREGROUND);
                    cellStyleTotal.setAlignment(HorizontalAlignment.CENTER);
                    cellStyleTotal.setVerticalAlignment(VerticalAlignment.CENTER);
                    cellStyleTotal.setBorderBottom(BorderStyle.THIN);//下邊框  
                    cellStyleTotal.setBorderLeft(BorderStyle.THIN);//左邊框  
                    cellStyleTotal.setBorderRight(BorderStyle.THIN);//右邊框  
                    cellStyleTotal.setBorderTop(BorderStyle.THIN);//上邊框
                    cellStyleTotal.setFont(cellFont);
                    cellStyleTotal.setWrapText(true);//設(shè)置自動(dòng)換行
 
                    sheet.addMergedRegion(new CellRangeAddress(rowNum, rowNum, 0, 1));
                    cell = row.createCell(0);
                    cell.setCellValue("合計(jì)");
                    cell.setCellStyle(cellStyleTotal);
 
                    cell = row.createCell(1);
                    cell.setCellStyle(cellStyleTotal);
 
                    cell = row.createCell(2);
                    cell.setCellValue("" + retain2Decimals(total.getAmount()) + "");
                    cell.setCellStyle(cellStyleTotal);
 
                    cell = row.createCell(3);
                    cell.setCellStyle(cellStyleTotal);
 
                    cell = row.createCell(4);
                    cell.setCellValue("" + retain2Decimals(total.getDistrictRetainedAmount()) + "");
                    cell.setCellStyle(cellStyleTotal);
 
                    cell = row.createCell(5);
                    cell.setCellStyle(cellStyleTotal);
 
                    cell = row.createCell(6);
                    cell.setCellValue("" + retain2Decimals(total.getDistrictIncentiveAmountReceivable()) + "");
                    cell.setCellStyle(cellStyleTotal);
 
                    cell = row.createCell(7);
                    cell.setCellValue("" + retain2Decimals(total.getTnIncome()) + "");
                    cell.setCellStyle(cellStyleTotal);
 
                    cell = row.createCell(8);
                    cell.setCellValue("" + retain2Decimals(total.getIntermediaryIncome()) + "");
                    cell.setCellStyle(cellStyleTotal);
 
                    cell = row.createCell(9);
                    cell.setCellValue("" + retain2Decimals(total.getEnterpriseIncome()) + "");
                    cell.setCellStyle(cellStyleTotal);
 
                    cell = row.createCell(10);
                    cell.setCellStyle(cellStyleTotal);
                }
            }
            // ------------------處理數(shù)據(jù)end--------------------------------------
            // 輸出Excel文件
            response.reset();
            OutputStream output = response.getOutputStream();
            response.setHeader("Content-disposition", "attachment;filename=" + new String(fileName.getBytes("gb2312"), "ISO8859-1") + ".xlsx"); //filename =  文件名
            response.setContentType("application/msexcel");
            wb.write(output);
            output.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

循環(huán)插入表頭方法

private static void creatCell(XSSFSheet sheet, XSSFRow row, XSSFCell cell, XSSFCellStyle cellStyle, Integer rowNum, String name) {
        // ------------------創(chuàng)建表頭start---------------------
        row = sheet.createRow(rowNum); // 創(chuàng)建第二行
        sheet.addMergedRegion(new CellRangeAddress(rowNum, rowNum + 1, 0, 0));
        cell = row.createCell(0);
        cell.setCellValue("招引企業(yè)");
        cell.setCellStyle(cellStyle);
 
        sheet.addMergedRegion(new CellRangeAddress(rowNum, rowNum + 1, 1, 1));
        cell = row.createCell(1);
        cell.setCellValue("稅種");
        cell.setCellStyle(cellStyle);
 
        sheet.addMergedRegion(new CellRangeAddress(rowNum, rowNum + 1, 2, 2));
        cell = row.createCell(2);
        cell.setCellValue("金額");
        cell.setCellStyle(cellStyle);
 
        sheet.addMergedRegion(new CellRangeAddress(rowNum, rowNum + 1, 3, 3));
        cell = row.createCell(3);
        cell.setCellValue("區(qū)留存比例");
        cell.setCellStyle(cellStyle);
 
        sheet.addMergedRegion(new CellRangeAddress(rowNum, rowNum + 1, 4, 4));
        cell = row.createCell(4);
        cell.setCellValue("區(qū)留存金額");
        cell.setCellStyle(cellStyle);
 
        sheet.addMergedRegion(new CellRangeAddress(rowNum, rowNum + 1, 5, 5));
        cell = row.createCell(5);
        cell.setCellValue("區(qū)獎(jiǎng)勵(lì)比例");
        cell.setCellStyle(cellStyle);
 
        sheet.addMergedRegion(new CellRangeAddress(rowNum, rowNum + 1, 6, 6));
        cell = row.createCell(6);
        cell.setCellValue("區(qū)獎(jiǎng)勵(lì)金額");
        cell.setCellStyle(cellStyle);
 
        sheet.addMergedRegion(new CellRangeAddress(rowNum, rowNum, 7, 9));
        cell = row.createCell(7);
        cell.setCellValue("獎(jiǎng)勵(lì)分配");
        cell.setCellStyle(cellStyle);
 
        cell = row.createCell(8);
        cell.setCellStyle(cellStyle);
        cell = row.createCell(9);
        cell.setCellStyle(cellStyle);
 
        sheet.addMergedRegion(new CellRangeAddress(rowNum, rowNum + 1, 10, 10));
        cell = row.createCell(10);
        cell.setCellValue("備注");
        cell.setCellStyle(cellStyle);
 
        //--------------------------- 創(chuàng)建第三行--------------------
        row = sheet.createRow(rowNum + 1);
 
        cell = row.createCell(0);
        cell.setCellStyle(cellStyle);
 
        cell = row.createCell(1);
        cell.setCellStyle(cellStyle);
 
        cell = row.createCell(2);
        cell.setCellStyle(cellStyle);
 
        cell = row.createCell(3);
        cell.setCellStyle(cellStyle);
 
        cell = row.createCell(4);
        cell.setCellStyle(cellStyle);
 
        cell = row.createCell(5);
        cell.setCellStyle(cellStyle);
 
        cell = row.createCell(6);
        cell.setCellStyle(cellStyle);
 
        cell = row.createCell(7);
        cell.setCellValue("天能所得");
        cell.setCellStyle(cellStyle);
 
        cell = row.createCell(8);
        cell.setCellValue(name + "(中介)");
        cell.setCellStyle(cellStyle);
 
        cell = row.createCell(9);
        cell.setCellValue("公司所得");
        cell.setCellStyle(cellStyle);
 
        cell = row.createCell(10);
        cell.setCellStyle(cellStyle);
        //-------------------------表頭end---------------------
    }

業(yè)務(wù)需要保留2位小數(shù)方法

private static BigDecimal retain2Decimals(BigDecimal num) {
        BigDecimal result = num.setScale(2, RoundingMode.HALF_UP);//保留兩位小數(shù)
        return result;
    }

excel導(dǎo)出模版如下:

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 淺談Redis在微服務(wù)架構(gòu)中的幾種應(yīng)用場(chǎng)景

    淺談Redis在微服務(wù)架構(gòu)中的幾種應(yīng)用場(chǎng)景

    本文介紹在SpringCloud中使用Redis作為Pub/Sub異步通信、緩存或主數(shù)據(jù)庫(kù)和配置服務(wù)器的三種場(chǎng)景應(yīng)用。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-05-05
  • MyBatis獲取自動(dòng)生成的(主)鍵值的方法

    MyBatis獲取自動(dòng)生成的(主)鍵值的方法

    本文主要介紹了MyBatis獲取自動(dòng)生成的(主)鍵值的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Java中String和StringBuffer及StringBuilder?有什么區(qū)別

    Java中String和StringBuffer及StringBuilder?有什么區(qū)別

    這篇文章主要介紹了Java中String和StringBuffer及StringBuilder?有什么區(qū)別,String?是?Java?語(yǔ)言非常基礎(chǔ)和重要的類(lèi),更多相關(guān)內(nèi)容需要的小伙伴可以參考下面文章內(nèi)容
    2022-06-06
  • Character.UnicodeBlock中cjk的說(shuō)明詳解

    Character.UnicodeBlock中cjk的說(shuō)明詳解

    這篇文章主要為大家詳細(xì)介紹了Character.UnicodeBlock中cjk的說(shuō)明,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • SpringBoot通過(guò)整合Dubbo解決@Reference注解問(wèn)題

    SpringBoot通過(guò)整合Dubbo解決@Reference注解問(wèn)題

    這篇文章主要介紹了SpringBoot通過(guò)整合Dubbo解決@Reference注解問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • SpringBoot2整合Redis緩存三步驟代碼詳解

    SpringBoot2整合Redis緩存三步驟代碼詳解

    這篇文章主要介紹了SpringBoot2整合Redis緩存三步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 解決logback使用${spring.application.name}日志打印路徑的問(wèn)題

    解決logback使用${spring.application.name}日志打印路徑的問(wèn)題

    這篇文章主要介紹了解決logback使用${spring.application.name}日志打印路徑的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Java集合框架之Map詳解

    Java集合框架之Map詳解

    這篇文章主要為大家詳細(xì)介紹了Java集合框架之Map,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • springboot]logback日志框架配置教程

    springboot]logback日志框架配置教程

    這篇文章主要介紹了springboot]logback日志框架配置,logback既可以通過(guò)application配置文件進(jìn)行日志的配置,又可以通過(guò)logback-spring.xml進(jìn)行日志的配置,本文給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2022-04-04
  • 詳解SSM框架下結(jié)合log4j、slf4j打印日志

    詳解SSM框架下結(jié)合log4j、slf4j打印日志

    本篇文章主要介紹了詳解SSM框架下結(jié)合log4j、slf4j打印日志,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11

最新評(píng)論