为什么Sheet.setColumnWidth不在Points中?有解决方法吗?

时间:2014-07-02 21:07:46

标签: java excel width apache-poi

我很好奇为什么Sheet.setColumnWidth没有接受Points参数的实现。

有一种方法可以用点设置行的高度,即setHeightInPoints

设置宽度的唯一可用方法是接受一个相当奇怪的比例,定义为

width = Truncate([{Number of Visible Characters} * {Maximum Digit Width} + {5 pixel padding}]/{Maximum Digit Width}*256)/256 

这意味着它取决于数字的某个宽度,因此参数中使用的值是 只是这里所需要的1/256,宽度的一些直线表示。在Excel本身 你也可以用点数设置宽度。

这意味着行高和列宽的行为不是对称的。

只有setColumnWidth版本才有合理理由吗?

这导致了严重的问题,因为我能得到的最好的结果在每台计算机上都有不同的结果, 因为设置的宽度取决于用户的默认字体设置。

我相信这与在许多不同的设置上很好地展示有关,正如pnuts的评论所暗示的那样。但它只适用于非常狭窄的领域。

目前我认为没有简单的解决方法,我现在找不到。 (也许只适用于我的案例)

有没有什么好方法可以从所需的点值计算列宽值? 即我想在任何使用excel导出功能的计算机上获得120分。 此处用作参数的宽度值是什么,以获得所需的points宽度?

0 个答案:

没有答案