SSRS экспорт в Excel принудительно принимает число за текстовое значение

#sql #excel #reporting-services

#sql #excel #службы отчетов

Вопрос:

Использование SSRS

Все остальные вопросы заключаются в том, как заставить число отображаться как число вместо текста при экспорте в Excel

Между тем я хочу принудительно отображать число в виде текста, чтобы Excel не превращал число 6158.30 в 6158.285, что вызывает у меня проблемы с округлением.

Мой SQL использует приведение к 2 десятичным CAST(ROUND(Net, 2) AS decimal(18,2)) знакам, в Excel оно отображается как 6158,30, но при нажатии на ячейку отображается 6158,285.

Я пытался объединить ‘ значение, но он экспортирует данные как ‘значение и НЕ заставляет ячейку отображаться как текстовые данные.

Комментарии:

1. Я думаю, ваш вопрос должен быть «почему мой запрос не округляет мой результат». Вы видите 6158.285, если запустите конструктор запросов отчета?

2. Базовый запрос / набор данных извлекает данные в виде ПРИВЕДЕНИЯ (ROUND(Net, 2) КАК десятичное (18,2)), но поскольку мне нужно умножить результат на 148,5, результат получается с точностью до 3 знаков после запятой. Я использую SSRS для отображения числа с точностью до 2 знаков после запятой, но когда оно экспортируется в Excel, оно сохраняет 3 десятичных знака, а затем вычисления неверны.

Ответ №1:

Я не думаю, что имеет смысл пытаться превратить число в текст, когда все, что вы пытаетесь сделать, это запретить отображение числа с более чем 2 десятичными знаками в Excel.

Судя по описанному вами поведению, для текстового поля это звучит так, что в настоящее время вы используете выражение SSRS, например:

 =Fields!Net.Value * 148.5
 

и использует свойство Format текстового поля для отображения с точностью до 2 знаков после запятой.

Вместо этого для выражения SSRS попробуйте:

 =Round(Fields!Net.Value * 148.5, 2) 
 

Нет необходимости устанавливать свойство Формат текстового поля (если вы не хотите использовать запятые и т. Д.).
Затем этот столбец текстового поля должен оставаться числом с точностью до 2 знаков после запятой, когда отчет создается в Excel и выбрана ячейка.

Комментарии:

1. Спасибо, хотя я не использовал вашу формулу, это была почти та же концепция. Я использовал SQL для приведения результирующего вычисления.