java - POI Java Excel 解决方案——缩进值

原文 标签 java excel apache-poi short bit-fields

你好,

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

CellStyle style = repSheetPositions.getRow(2).getCell(0).getCellStyle();

当我检查缩进的值是:
short a = style.getIndention();

a = 15

在我将值更改为:
repSheet.getRow(2).getCell(0).getCellStyle().setIndention((short) 17); 

这次的值(value)是:
short a = style.getIndention();

a = 1

请你帮助我好吗?

非常感谢!

最佳答案

问题是 Excel 2003 对单元格的最大缩进有限制。根据 this article , Excel 单元格的最大缩进为 15 .

The maximum indent value you can use is 15.


HSSFCellStyle class 必须通过计算您的值并在除以 16 时保留余数来考虑这一点。 .这些是我用不同输入得到的输出:
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))适本地。

关于java - POI Java Excel 解决方案——缩进值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21708516/

相关文章:

java - 在 Java 中使用泛型和类型推断的问题

java - 在android中使用SOAP本地Web服务

excel - VBA宏Excel

java - 使用 Apache POI 在 Excel 中出现一定数量的单元格后字体消失

java - 合并和颜色样式不适用于Apache POI Excel 2003格式

java - 如何编程以在Excel中保存一堆“.xls”文件

java - 如何获得唯一的随机整数?

java - 如何使用 Java 流打印嵌套列表,其中对象包含对自身的引用列表

excel - 使用OR条件筛选Excel数据透视表

java - Apache poi Excel 设置从右到左的阅读顺序