注意:如果每个单元格的样式都不一样,需要每个单元格创建一个cellStyle,否则单元格样式不生效
/**
* 设置对齐方式
*/
@Test
public void setAlignment() {
// 创建Excel工作簿
Workbook workbook = new XSSFWorkbook();
// 创建sheet
Sheet sheet = workbook.createSheet(WorkbookUtil.createSafeSheetName("第一页?"));
// 创建行和单元格并设置对齐方式
generateRowAndCell(sheet, workbook, 0, 0, HorizontalAlignment.CENTER, VerticalAlignment.CENTER);//水平垂直居中对齐
generateRowAndCell(sheet, workbook, 1, 0, HorizontalAlignment.LEFT, VerticalAlignment.BOTTOM);//水平居左垂直靠下对齐
generateRowAndCell(sheet, workbook, 2, 0, HorizontalAlignment.RIGHT, VerticalAlignment.TOP);//水平居右垂直考上对齐
generateRowAndCell(sheet, workbook, 3, 0, HorizontalAlignment.CENTER_SELECTION, VerticalAlignment.DISTRIBUTED);//水平常规垂直分散对齐
generateRowAndCell(sheet, workbook, 4, 0, HorizontalAlignment.DISTRIBUTED, VerticalAlignment.JUSTIFY);//分散对齐
generateRowAndCell(sheet, workbook, 5, 0, HorizontalAlignment.FILL, VerticalAlignment.CENTER);//水平填充,垂直居中
generateRowAndCell(sheet, workbook, 6, 0, HorizontalAlignment.GENERAL, VerticalAlignment.CENTER);//水平常规,垂直居中
generateRowAndCell(sheet, workbook, 7, 0, HorizontalAlignment.JUSTIFY, VerticalAlignment.CENTER);//两端对齐
// 创建文件, 写出, 关闭workBook
try(OutputStream outputStream = new FileOutputStream("demo11.xlsx")) {
workbook.write(outputStream);
workbook.close();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* @Description: 创建Excel的行和单元格, 并设置对齐方式
* @param: sheet
* @param: cellStyle
* @Return: void
* @Author: SLY
* @Date: 2019/2/28 23:11
*/
private void generateRowAndCell(Sheet sheet, Workbook workbook, int rowIndex, int cellIndex,
HorizontalAlignment horizontalAlignment, VerticalAlignment verticalAlignment) {
// 创建row
Row row = sheet.createRow(rowIndex);
row.setHeightInPoints(30);
// 创建cell, 设置样式
Cell cell = row.createCell(cellIndex);
CellStyle cellStyle = workbook.createCellStyle();
// 水平对齐
cellStyle.setAlignment(horizontalAlignment);
// 垂直对齐
cellStyle.setVerticalAlignment(verticalAlignment);
cell.setCellValue("对齐");
cell.setCellStyle(cellStyle);
}
参考博客:https://blog.csdn.net/weixin_42020557/article/details/88047588