【问题标题】:Is it possible to set the column width for a XSSF worksheet using Apache POI API?是否可以使用 Apache POI API 设置 XSSF 工作表的列宽?
【发布时间】:2015-08-02 21:47:56
【问题描述】:

我需要根据管理层提供的给定模式从我的应用程序中生成一个 MS Excel 2007+ 文件。大部分工作已经完成,但我必须将列宽设置为 11,34 厘米。我尝试使用setColumnWidth(int columnIndex, int width) 方法,但无论我提供的值如何,它都不起作用。 JavaDoc 说:

设置宽度(以字符宽度的 1/256 为单位)

单个单元格的最大列宽为 255 个字符。该值表示使用标准字体格式化的单元格中可以显示的字符数。

如何做到这一点?

【问题讨论】:

  • 您是否检查以确保该列未设置为自动调整大小?确保您没有在代码中执行此调用,sheet.autoSizeColumn(columnIndex);
  • 嗨,我没有在我的代码上找到任何类似的调用。我想知道是否有办法将厘米转换为“字符宽度”?或者这没有任何意义?

标签: apache width apache-poi xssf


【解决方案1】:

好的,我想我现在明白您的问题了,您的业务要求规定您必须根据标准 Excel 字体字符宽度设置列宽。

我解决这个问题的方法是在 Excel 中的示例上使用 Print Screen 键,然后粘贴到 Paint 或类似程序中并计算像素宽度。然后我会使用标尺工具来测量像素/厘米,并将得到的数字用作我的固定列宽。

这可能需要一些尝试和错误才能正确。

话虽如此,我将分享我的个人观点,即我认为这是一个懒惰且薄弱的业务需求。什么是“标准字体”?哪个版本的 Excel?此要求完全可以接受开发人员过多的解释。

【讨论】:

  • 我用来构建工作表布局的方法是[link]pastebin.com/iaqWhHg6[/link]。但是,我的要求是制作输出,以便我的经理可以将生成的格式化列集复制粘贴到董事会的报告中。目前的标准是其中一个列要大得多(代码没有反映这一点),但我需要以编程方式设置列的宽度。
【解决方案2】:

其实我一开始就错了!我的(可怕!)坏!已经设置了宽度列,但没想到!一切都只是一个简单的“三规则”,我就做好了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-23
    • 1970-01-01
    相关资源
    最近更新 更多