使用XSSFWorkbook创建.xlsx工作簿时,我重复了此行为.有趣的是,当我更改为HSSFWorkbook时,行为发生了变化,并且两个单元都正确对齐.
在Excel中打开.xlsx时,我仔细看了一下.即使数字看起来像是向右对齐,两个单元格中都没有突出显示表示“右对齐”的Excel工具栏按钮.作为参考,工具栏按钮位于“主页”,“对齐”部分中,如下所示(大特写):
________
______
________
______
________
______
但是,默认情况下,Excel中的所有数字都已经右对齐.对于.xlsx工作簿而言,如果它是默认的单元格样式并对其进行修改,则不能仅仅获得当前的单元格样式.您必须创建一个新的CellStyle,设置其属性,并为该单元格设置新的单元格样式.
以下代码可在.xls和.xlsx工作簿中使用.此外,它还仅创建一个CellStyle对象,以在所有适用的单元格上使用,从而证明CellStyle对象的适当重用.
CellStyle rightAligned = workbook.createCellStyle();
rightAligned.setAlignment(CellStyle.ALIGN_RIGHT);
Cell richTextCell = row.createCell(0);
RichTextString richTextString = creationHelper.createRichTextString("So rich!");
richTextCell.setCellValue(richTextString);
richTextCell.setCellStyle(rightAligned);
Cell numberCell = row.createCell(1);
numberCell.setCellValue(12.34);
numberCell.setCellStyle(rightAligned);