如何使用ColdFusion创建一个Excel文件,该文件的列可以按最大到最小排序,反之亦然?

时间:2019-06-12 05:37:15

标签: excel coldfusion apache-poi coldfusion-10

我们有一个报告,可以将其导出为Excel文件,因为我们有一个包含整数和“ N / A”(字符串类型)的列,但是当我转到“数据>>过滤器”时,它为我提供了选择在第一行中按从A到Z或Z到A的顺序对其进行排序(因为我们为字符串类型的每一列都有标题)。但是在这里,我想从大到小,反之亦然。 问题是,在生产环境中,我们具有与开发环境中相同的代码,但在Prod中,我们可以按最大到最小的顺序对其进行排序,但是在开发环境中,它提供了仅按A到Z或Z到A排序的选项。 我在这里可以做些什么来使开发环境与产品相同。我已经检查了整个代码,并且都为excel文件提供了相同的数据类型。

我尝试将“ N / A”替换为空白的“”,然后就能得到所需的结果(最小到最大)。 我们正在使用POI:Document ultility(https://github.com/wiggick/POIUtility) 在ColdFusion中创建一个excel文件。 请提出一种在代码本身中执行此操作的方法,因为excel用户不需要从excel中手动执行此操作。

1 个答案:

答案 0 :(得分:2)

一无所知,我怀疑这不是CF问题。当出现包含混合数据类型的列时,这只是Excel的正常行为。

与数据库表不同,Excel允许数字和字符串的混合存储在同一列中。当您尝试对此类列进行排序时,Excel必须通过扫描某些单元格值来“猜测”要显示的类型的排序选项。

  • 如果大多数值是数字,则Excel会提供数字排序选项:“最小到最大” “最大到最小”

    < / li>
  • 当大多数值是字符串时,Excel会显示文本排序选项:“ A到Z” “ Z到A”

    < / li>

我怀疑您所看到的是由Prod和Dev使用不同的数据填充电子表格引起的。只要单元格中填充了字符串和数字的组合,我认为您无法解决这个问题。

一种可能的选择是,在填充电子表格时,仅用 使用数字值,方法是将0替换为“ N / A”。然后应用custom cell format that displays "N/A" whenever the cell value is "0"。只要还没有将值“ 0”用于其他用途,就可以使用。


混合数据类型列和生成的排序选项的示例

Screen shot of Mixed Data Type Columns and Generated Sort Options