HSSFWorkbook 编写导出实例

接到分配的任务,是需要写一个导出,大概是这样的
在这里插入图片描述
当是直接傻了,子么导出出货单,我只会cv啊。
经过一阵摸索自己简单记录下自己的编写过程:
1.首先创建一个HSSFWorkbook对象

HSSFWorkbook hssfworkbook = new HSSFWorkbook();

2.创建一个样式列的集合来装列的样式:

 List<HSSFCellStyle> styleList = new ArrayList<>();

这里我由于需要多个sheet表格,就execl下面多个sheet,所以我循环遍历了下我传过来的参数,
3.创建一个sheet 有参构造

HSSFSheet sheet = GetHssfBase(hssfworkbook, styleList, sheet名称);

4.创建第一行

 HSSFRow hssfrow = (HSSFRow) sheet.createRow(0);

5.创建第一行的第一列 由于我下方数据需要11个单元格来展示数据所以循环创建


```java
 int colIndex = 0; //从第一列开始
 int rowIndex = 0; //行数

```java

hssfrow.setHeightInPoints(35);//给这一行设置行号,由于是大标题所以
for (int i = 0; i < 11; i++) {
hssfrow.createCell(colIndex).setCellValue(“”);
colIndex++;
}


6.给第一行第一列的赋值 大标题

            hssfrow.createCell(0).setCellValue("吴江市中吴丝织厂发货码单");
            //给第一列赋值样式
            hssfrow.getCell(0).setCellStyle(styleList.get(9));
            //合并第一行的所有单元格  下面参数:(起始行,结束行,起始单元格,结束单元格)
            sheet.addMergedRegion(new CellRangeAddress(rowIndex, rowIndex, 0, colIndex - 1));
            rowIndex++; //行数+1

7.创建第二行

    hssfrow = (HSSFRow) sheet.createRow(rowIndex);
    colIndex = 0;
    hssfrow.setHeightInPoints(20);//行高
    //单号和日期
    for (int i = 0; i < 11; i++) {
        hssfrow.createCell(colIndex).setCellValue("");
        hssfrow.getCell(colIndex).setCellStyle(styleList.get(1));
        colIndex++;
    }
    rowIndex++;

8.创建第三行

        colIndex = 0;
        hssfrow = (HSSFRow) sheet.createRow(rowIndex);
        hssfrow.setHeightInPoints(20);//行高
        for (int i = 0; i < 11; i++) {
            hssfrow.createCell(colIndex).setCellValue("");
            hssfrow.getCell(i).setCellStyle(styleList.get(1));
            colIndex++;
        }
        rowIndex++;

9.创建第三行

        colIndex = 0;
        hssfrow = (HSSFRow) sheet.createRow(rowIndex);
        hssfrow.setHeightInPoints(20);//行高
        hssfrow.createCell(colIndex).setCellValue("编号");
        hssfrow.getCell(colIndex).setCellStyle(styleList.get(10));
        colIndex++;
        for (int i = 1; i < 11; i++) {
            hssfrow.createCell(colIndex).setCellValue(i);
            hssfrow.getCell(colIndex).setCellStyle(styleList.get(10));
            colIndex++;
        }

10.创建第四行~十四行

        //循环遍历10次 创建十行
        for (int i = 0; i < 10; i++) {
            rowIndex++;  //由于遍历创建10行 所以把 这个放在了循环里面
            hssfrow = (HSSFRow) sheet.createRow(rowIndex);
            hssfrow.setHeightInPoints(20);//行高
            hssfrow.createCell(0).setCellValue((i + 1) + "");
            hssfrow.getCell(0).setCellStyle(styleList.get(10));
            hssfrow.createCell(1).setCellValue("");
            hssfrow.getCell(1).setCellStyle(styleList.get(1));
            hssfrow.createCell(2).setCellValue("");
            hssfrow.getCell(2).setCellStyle(styleList.get(1));
            hssfrow.createCell(3).setCellValue("");
            hssfrow.getCell(3).setCellStyle(styleList.get(1));
            hssfrow.createCell(4).setCellValue("");
            hssfrow.getCell(4).setCellStyle(styleList.get(1));
            hssfrow.createCell(5).setCellValue("");
            hssfrow.getCell(5).setCellStyle(styleList.get(1));
            hssfrow.createCell(6).setCellValue("");
            hssfrow.getCell(6).setCellStyle(styleList.get(1));
            hssfrow.createCell(7).setCellValue("");
            hssfrow.getCell(7).setCellStyle(styleList.get(1));
            hssfrow.createCell(8).setCellValue("");
            hssfrow.getCell(8).setCellStyle(styleList.get(1));
            hssfrow.createCell(9).setCellValue("");
            hssfrow.getCell(9).setCellStyle(styleList.get(1));
            hssfrow.createCell(10).setCellValue("");
            hssfrow.getCell(10).setCellStyle(styleList.get(1));
        }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值