POI Java Excel解决方案 - 缩进值

use*_*185 5 java excel short apache-poi bit-fields

嗨,

这是我第一次使用POI(Java Excel解决方案)的经验,我试图将其中一行中的缩进设置为17,如下所示:

CellStyle style = repSheetPositions.getRow(2).getCell(0).getCellStyle();
Run Code Online (Sandbox Code Playgroud)

当我检查缩进的值是:

short a = style.getIndention();
Run Code Online (Sandbox Code Playgroud)

a = 15

我将值更改为:

repSheet.getRow(2).getCell(0).getCellStyle().setIndention((short) 17); 
Run Code Online (Sandbox Code Playgroud)

这次的价值是:

short a = style.getIndention();
Run Code Online (Sandbox Code Playgroud)

a = 1

请你帮助我好吗?

非常感谢!

rge*_*man 6

问题是Excel 2003对单元格的最大缩进有限制.根据这篇文章,Excel对单元格的最大缩进是15.

您可以使用的最大缩进值是15.

HSSFCellStyle班必须采取你的价值,并保持余数划分时服用这帐户16.这些是我通过不同输入获得的输出:

15 => 15
16 => 0
17 => 1
18 => 2
31 => 15
32 => 0
Run Code Online (Sandbox Code Playgroud)

但是,当使用XSSFCellStyle(用于.xlsx工作簿,Excel 2007+)时,此问题将消失.有了XSSFCellStyle,我可以设置1717回来.

如果您使用Excel 2003及之前(.xls),那么您无能为力; 这是Excel的限制.但是,Excel 2007+支持大于15的缩进.解决方法是使用.xlsx工作簿,以便Apache POI使用XSSFCellStyle,它将setIndention(short (17))正确支持.