Excel (poi 版本为 4.1.0)
创建excel
- 创建excel workbook
- HSSFWorkbook workbook = new HSSFWorkbook();
- 在workbook中创建一个工作表
- HSSFSheet sheet = workbook.createSheet();
- HSSFSheet的构造方法为保护的 所以 不能通过new来创建,只能通过workbook来create
- 在sheet中获取行row
- HSSFRow row = sheet.createRow()
- 同样构造方法为保护,row只能通过sheet来create
- 在row中获得cell
- HSSFCell cell = row.createCell()
- 构造方法为保护 通过row.create来创建
- 获取字体样式
- HSSFFont font = workbook.createFont()
- 构造方法保护,无法直接创建
- 获取单元格(cell)样式
- HSSFCellStyle cellStyle = work.createCellStyle()
- 构造方法保护,无法直接创建
- 使用cellStyle
- cellStyle.setFont(HSSFFont font)
- 将字体样式加入单元格样式中
- cell.setCellStyle(HSSFCellStyle cellStyle)
- cellStylecell.setCellStyle中有效,在row.setCellStyle中无效–原因不明,目前尚未解决
- cellStyle.setFont(HSSFFont font)
使用poi布局
- sheet
- 创建行row
- row = sheet.createRow(rowNum)
- 获取行row
- row = sheet.getRow(rowNum)
- 设置列距(没用过)
- 设置列距自定义(需要在最后设置,否则不会生效)
- for (int i = 0; i < 12; i++){
sheet.autoSizeColumn(i, true);
}
- for (int i = 0; i < 12; i++){
- 设置合并单元格
- 创建CellRangeAddress cellAddresses = CellRangeAddress(firstRow,lastRow,firstCol,lastCol)
- 合并sheet.addMergeRegion(cellAddresses)
- 创建行row
- row
- 创建单元格cell
- cell = row.createCell(cellNum)
- 获取单元格cell
- cell = row.getCell(cellNum)
- 设置行高(默认自动,设置行高后,将不在自动行高)
- row.setHeightInPoints((float) floatNum)
- 设置行样式(目前没有生效过)
- row.setCellStyle(cellStyle)
- 创建单元格cell
- cell
- 设置单元格样式
- cell.setCellStyle(cellStyle)
- 设置单元格内容
- cell.setCellValue(message)
- 设置单元格样式
- 设置字体样式
- 创建字体样式
- HSSFFont font = workbook.createFont()
- 设置字体类型
- font.setFontName(“宋体”)
- font.setFontName(“黑体”)
- 设置字体加粗
- font.setBold(true) (4.1.0)
- font.setBoldweight(Font.BOLDWEIGHT_BOLD)(此方法为 3.8版本poi )
- 设置字体大小
- font.setFontHegihtInPoints((short)size)
- 将字体加入样式
- cellStyle.setFont(font)
- 创建字体样式
- 设置单元格样式(cellStyle)
- 设置自动自动换行
- cellStyle.setWrapText(true)
- 如果单元格内容需要用\r\n强制换行的话必须先设置自动换行
- 设置水平居中
- poi 3.8版本
- cellStyle2.setAlignment(CellStyle.ALIGN_CENTER)
- poi 4.1.0版本
- cellStyle4.setAlignment(HorizontalAlignment.CENTER)
- poi 3.8版本
- 设置垂直居中
- poi 3.8版本
- poi 4.1.0版本
- 设置边框
- 边框样式BorderStyle(枚举类型Enum)
- THIN 实线 薄边框
- 设置上边框
- cellStyle.setBorderTop(BorderStyle.THIN)
- 设置下边框
- cellStyle.setBorderBottom(BorderStyle.THIN)
- 设置左边框
- cellStyle.setBorderLeft(BorderStyle.THIN)
- 设置右边框
- cellStyle.setBorderRight(BorderStyle.THIN)
- 设置合并单元格边框(需要在最后设置,否则不会生效)
- 创建cellAddress
- CellRangeAddress cellAddresses = CellRangeAddress(firstRow,lastRow,firstCol,lastCol)
- 上 RegionUtil.setBorderTop(BorderStyle.THIN,cellAddresses1,sheet)
- 下 RegionUtil.setBorderBottom(BorderStyle.THIN,cellAddresses1,sheet)
- 左 RegionUtil.setBorderLeft(BorderStyle.THIN,cellAddresses1,sheet)
- 右 RegionUtil.setBorderRight(BorderStyle.THIN,cellAddresses1,sheet)
- 创建cellAddress
- 边框样式BorderStyle(枚举类型Enum)
- 设置自动自动换行