POI Java Excel解决scheme – 缩进值
嗨,
这是我第一次使用POI(Java Excel解决scheme)的经验,我试图将其中一行的缩进设置为17,如下所示:
CellStyle style = repSheetPositions.getRow(2).getCell(0).getCellStyle();
当我检查缩进的值是:
short a = style.getIndention();
a = 15
将值更改为:
repSheet.getRow(2).getCell(0).getCellStyle().setIndention((short) 17);
这次的价值是:
short a = style.getIndention();
a = 1
你可以帮我吗?
非常感谢!
问题是Excel 2003对单元格的最大缩进限制。 根据这篇文章 ,Excel的单元格的最大缩进是15
。
您可以使用的最大缩进值是15。
HSSFCellStyle
类必须把这个值用16
除以余数。 这些是我用不同的input获得的输出:
15 => 15 16 => 0 17 => 1 18 => 2 31 => 15 32 => 0
但是,使用XSSFCellStyle
(用于.xlsx工作簿,Excel 2007+)时,此问题将消失。 用一个XSSFCellStyle
,我可以设置17
并返回17
。
如果您使用Excel 2003和之前的版本(.xls),那么您就无能为力; 这是一个Excel的限制。 但是,Excel 2007+支持的缩进大于15.解决方法是使用.xlsx工作簿,以便Apache POI使用XSSFCellStyle
,它将正确支持setIndention(short (17))
。