Как создать файл Excel с ColdFusion, в котором есть столбец, который мы можем отсортировать по величине к наименьшему или наоборот? - PullRequest
1 голос
/ 12 июня 2019

У нас есть отчет, который мы можем экспортировать как файл Excel, так как у нас есть столбец, который содержит целые числа и «N / A» (строковый тип), но когда я перехожу к Data >> Filter, он дает мне возможностьотсортируйте его от A до Z или от Z до A в первой строке (поскольку у нас есть заголовки для каждого столбца, который имеет строковый тип).Но здесь я хочу быть самым большим или самым маленьким или наоборот.Дело в том, что в производственной среде у нас есть тот же код, который мы используем в среде Dev, но в Prod мы можем отсортировать его по величине наименьшего, но в среде разработчика это дает возможность сортировать только по A к Z или от Z к AЧто я могу сделать здесь, чтобы сделать среду разработки такой же, как prod.Я проверил весь код, и оба дают одинаковые типы данных в файл Excel.

Я попытался заменить "N / A" на пустое "", тогда я могу получить требуемый результат (Самый маленький к большому).Мы используем POI: Document ultility (https://github.com/wiggick/POIUtility) для создания файла Excel в ColdFusion. Пожалуйста, предложите способ сделать это в самом коде, потому что пользователю Excel не нужно делать это вручную из Excel..

1 Ответ

2 голосов
/ 13 июня 2019

Не зная больше, я подозреваю, что это не проблема CF.Просто нормальное поведение Excel, когда представлены столбцы, содержащие смешанные типы данных.

В отличие от таблиц базы данных, Excel позволяет хранить цифры и строки в одном столбце.Когда вы пытаетесь отсортировать такой столбец, Excel должен «угадать», какой тип сортировки представить, сканируя некоторые значения ячеек.

  • Если большинство значений являются числами, Excel предоставляет числовые параметры сортировки: "От наименьшего к наибольшему" и "От наименьшего к наименьшему"

  • Когда большинство значений являются строками, Excel предоставляет параметры сортировки текста: "от А до Я" или "от З до А"

Я подозреваю, что то, что вы видите, вызвано тем, что Prod и Dev используют разные данные для заполнения электронных таблиц.Пока ячейки заполнены сочетанием строк и чисел, я не думаю, что вы можете обойти это.

Возможной альтернативой является только использование числовых значений при заполнении электронной таблицы путем замены 0 вместо "N / A".Затем примените пользовательский формат ячейки , который отображает"N / A" всякий раз, когда значение ячейки равно "0" .Это будет работать до тех пор, пока значение «0» еще не используется для чего-то другого.


Пример столбцов смешанного типа данных и параметров сгенерированной сортировки

Screen shot of Mixed Data Type Columns and Generated Sort Options

...