工作日志22-04-21

1.poi导出Excel

1.1创建Excel工作薄对象

//创建Excel工作薄对象
        HSSFWorkbook workbook = new HSSFWorkbook();
        //创建Excel工作表对象
        HSSFSheet sheet = workbook.createSheet("品名车型数量统计");

1.2创建行

 HSSFRow row = sheet.createRow(0);

从第0行开始创建

1.3创建列,从而得到单元格

HSSFCell cell3 = row.createCell(0);

从当前行的第0列创建

1.4 给单元格赋值

cell3.setCellValue("品名车型数量统计");

1.5设置样式

HSSFCellStyle style = workbook.createCellStyle();

设置居中

//设置水平居中
style.setAlignment(HorizontalAlignment.CENTER);
//设置垂直居中
style.setVerticalAlignment(VerticalAlignment.CENTER);

设置边框

style.setBorderTop(BorderStyle.THIN);//上边框
style.setBorderBottom(BorderStyle.THIN); //下边框
style.setBorderLeft(BorderStyle.THIN); //左边框
style.setBorderRight(BorderStyle.THIN); //右边框

设置背景颜色

style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
style.setFillForegroundColor(HSSFColor.HSSFColorPredefined.PALE_BLUE.getIndex());

给单元格应用设置的样式

cell3.setCellStyle(style);

合并单元格

 CellRangeAddress regionx = new CellRangeAddress(0, 0, 0, productNameList1.size() + 1);
//四个参数为:开始行,结束行,开始列,结束列

合并单元格后设置样式

 sheet.addMergedRegion(regionx);
//合并后设置边框
RegionUtil.setBorderBottom(BorderStyle.THIN, regionx, sheet);
RegionUtil.setBorderTop(BorderStyle.THIN, regionx, sheet);
RegionUtil.setBorderLeft(BorderStyle.THIN, regionx, sheet);
RegionUtil.setBorderRight(BorderStyle.THIN, regionx, sheet);

设置行高

row.setHeight((short) (20 * 24));

设置列宽

sheet.setColumnWidth(0, 20 * 150);

第一个参数是第几列,第二个参数是宽度

注意:poi中的行高单位和excel中的行高单位不同,excel中的行高单位是pt(point,磅),而poi中的行高单位则是twips(缇)。
换算公式是:1pt = 20twips

将创建的excel返回

        SimpleDateFormat ss = new SimpleDateFormat("yyyyMMddHHmmssSS");
        String name = ss.format(new Date()) + ".xls";
        try {
            //文档输出
            File file = new File(uploadpath);
            if (!file.exists()) {
                file.mkdirs();
            }
            FileOutputStream out = new FileOutputStream(uploadpath + name);
            workbook.write(out);
            out.close();
        } catch (
                Exception e) {
            e.printStackTrace();
        }
        return ResultData.ok(name);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值