接到分配的任务,是需要写一个导出,大概是这样的
当是直接傻了,子么导出出货单,我只会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));
}