当前位置: 首页 > 知识库问答 >
问题:

在Apache POI中设置列宽

冀景明
2023-03-14

我正在用Java编写一个工具,使用Apache POI API将XML转换为MS Excel。在我的XML输入中,我接收以点为单位的列宽。但是Apache POI API在根据字体大小等设置列宽方面有一个有点奇怪的逻辑(请参考API文档)

是否有公式将点转换为Excel所期望的宽度?以前有人这么做过吗?

但是有一个setrowheightinpoints()方法:(但对于column.

附注:输入的XML是ExcelML格式,我必须将其转换为MS Excel。

共有1个答案

干浩阔
2023-03-14

不幸的是,只有类表中的函数setColumnWidth(int columnIndex,int width);其中宽度是标准字体(工作簿中的第一个字体)中的字符数。说明了如何计算字体大小的函数宽度。公式为:

width = Truncate([{NumOfVisibleChar} * {MaxDigitWidth} + {5PixelPadding}] / {MaxDigitWidth}*256) / 256

工作表中输入数据后,始终可以使用autosizeColumn(int column,boolean useMergedCells)

 类似资料:
  • 有人知道如何改变页面大小(从字母到A4)为(docx)吗? 我找不到任何像XSSFDocument(xlsx)中那样的打印设置。 谢谢你的帮助。

  • 我对POI还是新手,但是我想简单地在Excel工作簿中迭代一列。例如,在下表中,如果我只想要列A的值,即列0中的行0-3,有没有有效的方法来做到这一点?我所看到的所有POI都是基于行的。 我有一些大的电子表格,我可以成功地遍历整个表格,但我只是想找出处理这种事情的最佳实践。 提前感谢。

  • 我正在尝试创建一个包含多列的word文档。这样做(而不是使用表)的原因是,数据将跨越多个页面,在添加到新页面之前,我只能用列填充整个页面。 可以用ApachePOI实现吗?谢谢

  • 我正在使用Jaspersoft Studio开发一个报告。在报告中,有些列只需要3个数字(Unicode),有些列需要8个数字(Unicode)。 我试图使列的宽度更大,这需要长数字,以便它适合一行和另一个宽度较小的行,需要短数字(只有3个数字)。 在Studio中,我尝试使用鼠标拖动,但它会自动调整所有其他列的大小,这使得固定特定列的大小变得更加困难。 有更简单的方法吗?

  • 我是库伯内特人。我在Minikube中配置的整个设置。我不确定它是否与其他kubernetes设置有所不同。 我已经在我的设置中创建了一个POD,一个Spring Boot应用程序正在8080端口上运行,这个服务将在20080端口上向集群公开。 我正在运行tcpDum的集群内运行另一个pod。我需要在20080上转储撞击集群的HTTP数据包。请告诉我如何从tcpDumpod访问集群接口。 我尝试了

  • 问题内容: 我这样制作数据框。 我想通过使用一些熊猫方法将索引转换为此(例如set_index,stack 、、) 我怎样才能做到这一点? 问题答案: 我认为你需要与重塑,然后交换在水平由列由去年的排序列: 用另一种解决方案和: