ssrs csv экспортирует числовые значения - PullRequest
1 голос
/ 22 декабря 2011

Я использую SSRS для создания отчета, который можно экспортировать в несколько типов (PDF, XLS, CSV ...) Отчет состоит из таблицы, и некоторые столбцы имеют числовые значения, такие как широта или долгота, что-то вроде -1,234567

При экспорте в csv и открытии в Excel эти числовые значения теряют ','

Можно ли сделать эти значения текстовыми в построителе отчетов, чтобы они сохранялись как есть, без форматирующих изменений в файле csv?

ТКС

1 Ответ

3 голосов
/ 22 декабря 2011

Простой способ сделать это - использовать выражение «Формат» вместо прямого доступа к полю отчета.

Например,

=Format(Fields!OrderPrice.Value, "#,###.00")

вместо ..

=Fields!OrderPrice.Value

Это приведет числовое значение в строку.Числовой формат обеспечит вам запятую.При экспорте через CSV значение будет заключено в кавычки, что означает, что ваша запятая при форматировании не приведет к сбою синтаксического анализатора.

Массивная оговорка Это решение не является идеальным.Проблема заключается в том, что, хотя вы получаете желаемый результат в своем CSV-файле, любой произведенный экспорт SSRS Excel будет помечать это поле как текстовое содержимое, что означает, что ваши пользователи должны будут сообщать Excel разные при каждом открытии этого отчета.1014 * Аналогично, если кто-то откроет ваш файл CSV в Excel, произойдет то же самое.Excel не достаточно умен, чтобы признать, что в кавычках на самом деле есть число, и он снова будет воспринимать столбец как текстовый.

Реальность такова, что CSV - это ограниченный формат.Его главной заботой является контент - он не передает информацию о форматировании, и даже если бы можно было дать SSRS более «руководство» по отдельным процедурам экспорта, присущие ограничения формата файла CSV означают, что это своего рода компромисс (или дополнительная работана конце Excel) должно быть сделано.

...