POI中excel的基本组成部分
1.工作簿 HSSFWorkbook
// 根据excel文件获取一个工作簿
HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(path));
// 创建一个新的工作簿
HSSFWorkbook myWorkbook = new HSSFWorkbook();
2.工作表 HSSFSheet
// 从工作簿获取第一个工作表
HSSFSheet sheet = wb.getSheetAt(0);
// 为当前工作簿新建一个工作表
HSSFSheet mySheet = myWorkbook.createSheet();
3.一行 HssfRow
// 获取已有的数据行
HSSFRow newRow = mySheet.getRow(i);
if (newRow == null) {
// 创建一个新数据行
newRow = mySheet.createRow(i);
}
4.一个单元格 HSSFCell
HSSFCell newCell = newRow.getCell(j);
if (newCell == null) {
newCell = newRow.createCell(j);
}
还有一种特殊的单元格,合并单元格
// 合并单元格 CellRangeAddress(int firstRow, int lastRow, int firstCol, int lastCol)
mySheet.addMergedRegion(new CellRangeAddress(i, i, 0, 1));
合并单元格设置值以及样式的时候,注意要设置到该合并单元格的第一个单元格。如下:
//设置合并单元格的值
HSSFRow newRow = mySheet.getRow(i);
newRow.getCell(0).setCellValue(cellValue);
单元格由样式、值、公式等组成。样式包含字体/颜色/是否加粗/自动换行/数据类型等;基于此,我们可以在excel中定义好我们需要的样式(也可能是客户指定的样式,提供一个excel样例),直接拷贝过来进行设置即可。
设置列宽
HssfSheet: setColumnWidth(int columnIndex, int width) columnIndex列索引,width宽度
getColumnWidth(int columnIndex)
缩放比例
// 设置缩放比例
mySheet.setZoom(85);
单元格样式
// 获取单元格原有样式
HSSFCellStyle oldCellStyle = HssfCell: getCellStyle()
// 创建单元格样式
HSSFCellStyle newCellStyle = myWorkbook.createCellStyle();
// 从已有单元格样式克隆
newCellStyle.cloneStyleFrom(oldCellStyle)
// 设置自动换行
newCellStyle.setWrapText(true);
// 为单元格设置样式
hssfCell.setCellStyle(newCellStyle);
单元格值
hssfCell.setCellValue(T value); // 可以设置多种数据类型
excel单元格有一种数据类型叫做常规类型,这种数据类型无特定格式,但是要设置为数值时,可以将单元格数据类型设置为常规类型,同时设置值为Double类型,这样我们也能达到设置数值的目的,如下代码:
Double dbCellValue = new Double(cellValue);
newCell.setCellValue(dbCellValue);