ssrs csv экспортировать числовые значения

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

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

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

спасибо


person DJPB    schedule 22.12.2011    source источник


Ответы (1)


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

e.g.

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

вместо..

=Fields!OrderPrice.Value

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

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

Точно так же, если кто-то откроет ваш CSV-файл в Excel, произойдет то же самое. Excel недостаточно умен, чтобы распознать, что вещь в кавычках на самом деле является числом, и он снова будет обрабатывать столбец как текстовый.

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

person Paul Alan Taylor    schedule 22.12.2011
comment
Спасибо за подробный ответ. Очень проницательно. - person Tri Q Tran; 15.10.2014