使用java的poi工具包操作excel

使用java的poi工具包操作excel

  1. 在maven依赖中导入poi依赖

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.9</version>
</dependency>

  1. 使用poi操作excel

a.创建工作簿

HSSFWorkbook wb = new HSSFWorkbook();

b.创建sheet页

HSSFSheet sheet = wb.createSheet("Sheet1");

参数指定sheet页名字

c.创建行

HSSFRow row = sheet.createRow(0);

参数指定行数,第一行为0,第二行为1

row.setHeight((short) 1000);// 设定行的高度

d.在当前行创建单元格

HSSFCell cell = row.createCell(0);

参数指定单元格所在的列数

e.给单元格填充内容

cell.setCellValue("内容");

f.设置单元格的样式

首先定义一个样式对象

HSSFCellStyle style = wb.createCellStyle();

如果需要设置字体,也可以定义一个字体对象

HSSFFont font = wb.createFont();

对字体样式进行设置

font.setFontName("宋体");
font.setFontHeight((short) 80);
font.setFontHeightInPoints((short) 24);

然后将字体样式赋值给单元格样式

style.setFont(font);

设置单元格样式

对齐方式

style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//垂直
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平

 

// 设置边框
style.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
style.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
style.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框

 

style.setWrapText(true);// 自动换行

 

使单元格样式在所在单元格生效

cell.setCellStyle(style);

 

g.合并单元格

sheet.addMergedRegion(new CellRangeAddress(4, 5, 12, 12));

使用addMergedRegion方法,参数为一个CellRangeAddress对象,该对象中的参数值依次代表要合并单元格的最低行号,最后一行行号,最前面一列的列号,最后一列的列号,行列号都是真实行列数-1

 

  1. 以下是用poi创建一个excel表表头的小demo,仅供参考:


        HSSFWorkbook wb = new HSSFWorkbook();
        HSSFSheet sheet = wb.createSheet("Sheet1");
        HSSFFont font = wb.createFont();
        font.setFontName("宋体");
        font.setFontHeight((short) 80);
        font.setFontHeightInPoints((short) 24);
        // 设置标题样式
        HSSFCellStyle style = wb.createCellStyle();
        style.setFont(font);
        style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//垂直
        style.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平
        HSSFRow row = sheet.createRow(0);
        row.setHeight((short) 1000);// 设定行的高度
        HSSFCell cell = row.createCell(0);
        sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 12));
        cell.setCellValue("车辆动用申请汇总审批表");
        cell.setCellStyle(style);

        //第二行
        row = sheet.createRow(1);
        row.setHeight((short) 550);
        for (int i = 0; i < 13; i++) {
            cell = row.createCell(i);
            switch (i) {
                case 0:
                    cell.setCellValue("制表:" + summaryExcel.getTabulationUnit());
                    style = wb.createCellStyle();

                    // 设置位置
                    style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//垂直
                    style.setAlignment(HSSFCellStyle.ALIGN_LEFT);//水平
                    style.setWrapText(true);// 自动换行
                    // 设置字体
                    font = wb.createFont();
                    font.setFontName("黑体");
                    font.setFontHeight((short) 30);
                    font.setFontHeightInPoints((short) 12);
                    style.setLocked(true);
                    style.setFont(font);
                    cell.setCellStyle(style);
                    break;
//
                case 12:
                    cell.setCellValue(summaryExcel.getExportDate());
                    style = wb.createCellStyle();

                    // 设置位置
                    style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//垂直
                    style.setAlignment(HSSFCellStyle.ALIGN_RIGHT);//水平
                    style.setWrapText(true);// 自动换行
                    // 设置字体
                    font = wb.createFont();
                    font.setFontName("黑体");
                    font.setFontHeight((short) 30);
                    font.setFontHeightInPoints((short) 12);
                    style.setLocked(true);
                    style.setFont(font);
                    cell.setCellStyle(style);
                    break;
                default:
                    break;
            }
        }


        //第三行
        row = sheet.createRow(2);
        row.setHeight((short) 400);
        for (int i = 0; i < 13; i++) {
            cell = row.createCell(i);
            switch (i) {
                case 0:
                    cell.setCellValue("序号");
                    cell.setCellStyle(getStyleBorderTop(wb));
                    break;
                case 1:
                    cell.setCellValue("用车单位");
                    cell.setCellStyle(getStyleBorderTop(wb));
                    break;
                case 2:
                    cell.setCellValue("带车干部");
                    cell.setCellStyle(getStyleBorderTop(wb));
                    break;
                case 3:
                    cell.setCellValue("联系电话");
                    cell.setCellStyle(getStyleBorderTop(wb));
                    break;
                case 4:
                    cell.setCellValue("车牌号");
                    cell.setCellStyle(getStyleBorderTop(wb));
                    break;
                case 5:
                    cell.setCellValue("车型");
                    cell.setCellStyle(getStyleBorderTop(wb));
                    break;
                case 6:
                    cell.setCellValue("驾驶员");
                    cell.setCellStyle(getStyleBorderTop(wb));
                    break;
                case 7:
                    cell.setCellValue("车数");
                    cell.setCellStyle(getStyleBorderTop(wb));
                    break;
                case 8:
                    cell.setCellValue("动用时间");
                    cell.setCellStyle(getStyleBorderTop(wb));
                    break;
                case 9:
                    cell.setCellStyle(getStyleBorderTop(wb));
                    break;
                case 10:
                    cell.setCellValue("乘坐人员");
                    cell.setCellStyle(getStyleBorderTop(wb));
                    break;
                case 11:
                    cell.setCellValue("任务");
                    cell.setCellStyle(getStyleBorderTop(wb));
                    break;
                case 12:
                    cell.setCellValue("路线");
                    style = wb.createCellStyle();
                    style.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
                    style.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
                    style.setBorderTop(HSSFCellStyle.BORDER_MEDIUM);//上边框
                    style.setBorderRight(HSSFCellStyle.BORDER_MEDIUM);//右边框
                    // 设置位置
                    style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//垂直
                    style.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平
                    style.setWrapText(true);// 自动换行
                    // 设置字体
                    font = wb.createFont();
                    font.setFontName("黑体");
                    font.setFontHeight((short) 30);
                    font.setFontHeightInPoints((short) 12);
                    style.setLocked(true);
                    style.setFont(font);
                    cell.setCellStyle(style);
                    break;
                default:
                    break;
            }
        }

        //第四行

        row = sheet.createRow(3);
        row.setHeight((short) 400);
        for (int i = 0; i < 13; i++) {
            cell = row.createCell(i);
            switch (i) {
                case 0:
                    sheet.setColumnWidth(i, 1300);
                    cell.setCellStyle(getStyleText(wb));
                    break;
                case 1:
                    sheet.setColumnWidth(i, 2500);
                    cell.setCellStyle(getStyleText(wb));
                    break;
                case 2:
                    sheet.setColumnWidth(i, 2500);
                    cell.setCellStyle(getStyleText(wb));
                    break;
                case 3:
                    sheet.setColumnWidth(i, 3500);
                    cell.setCellStyle(getStyleText(wb));
                    break;
                case 4:
                    sheet.setColumnWidth(i, 3000);
                    cell.setCellStyle(getStyleText(wb));
                    break;
                case 5:
                    sheet.setColumnWidth(i, 2000);
                    cell.setCellStyle(getStyleText(wb));
                    break;
                case 6:
                    sheet.setColumnWidth(i, 2200);
                    cell.setCellStyle(getStyleText(wb));
                    break;
                case 7:
                    sheet.setColumnWidth(i, 1500);
                    cell.setCellStyle(getStyleText(wb));
                    break;
                case 8:
                    sheet.setColumnWidth(i, 3500);
                    cell.setCellValue("日期");
                    cell.setCellStyle(getStyleText(wb));
                    break;
                case 9:
                    sheet.setColumnWidth(i, 1800);
                    cell.setCellValue("时间");
                    cell.setCellStyle(getStyleText(wb));
                    break;
                case 10:
                    sheet.setColumnWidth(i, 2500);
                    cell.setCellStyle(getStyleText(wb));
                    break;
                case 11:
                    sheet.setColumnWidth(i, 2000);
                    cell.setCellStyle(getStyleText(wb));
                    break;
                case 12:
                    sheet.setColumnWidth(i, 3000);
                    cell.setCellStyle(getStyleBorderRight(wb));
                default:
                    break;
            }
        }

sheet.addMergedRegion(new CellRangeAddress(4, carExportParamsList.size() + 3, 0, 0));
sheet.addMergedRegion(new CellRangeAddress(4, carExportParamsList.size() + 3, 1, 1));
sheet.addMergedRegion(new CellRangeAddress(4, carExportParamsList.size() + 3, 2, 2));
sheet.addMergedRegion(new CellRangeAddress(4, carExportParamsList.size() + 3, 3, 3));
sheet.addMergedRegion(new CellRangeAddress(4, carExportParamsList.size() + 3, 7, 7));
sheet.addMergedRegion(new CellRangeAddress(4, carExportParamsList.size() + 3, 8, 8));
sheet.addMergedRegion(new CellRangeAddress(4, carExportParamsList.size() + 3, 9, 9));
sheet.addMergedRegion(new CellRangeAddress(4, carExportParamsList.size() + 3, 11, 11));
sheet.addMergedRegion(new CellRangeAddress(4, carExportParamsList.size() + 3, 12, 12));

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值