Простой способ сделать это — использовать выражение формата вместо прямого доступа к полю отчета.
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