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))