C# Задача сценария служб SSIS - добавление разделителя тысяч при форматировании столбца Excel - PullRequest
2 голосов
/ 10 февраля 2020

В настоящее время используется следующее C# в задаче сценария в SSIS для форматирования столбца Excel в виде числа.

sheet.Columns[6].NumberFormat = "0.00";

Однако при создании столбца разделитель тысяч отсутствует. Есть ли способ добавить это в?

Ответы [ 3 ]

2 голосов
/ 10 февраля 2020

Полагаю, вы можете использовать это:

sheet.Columns[6].NumberFormat = "#,##0.00";

Места с нулями будут отображаться, даже если значение равно 0, тогда как места с символами фунта (#) будут отображаться только при необходимости. .

Ниже приведены некоторые примеры того, что будет показано при использовании этого формата:

10000 -> 10,000.00
 1000 -> 1,000.00
   10 -> 10.00
 5.25 -> 5.25
  .25 -> 0.25
   .1 -> 0.10
1 голос
/ 10 февраля 2020

Выражение числового формата состоит из следующих числовых c спецификаторов:

# : Di git заполнитель
0 : Нулевой заполнитель
, : Десятичная точка
. : Десятичный разделитель
[Красный] : Спецификатор цвета
% : Процент заполнителя

Вы можете использовать следующее выражение для отображения разделителей тысяч:

sheet.Columns[6].NumberFormat = "#,##0.00";

Примеры (изображение взято из ссылок ниже) :

enter image description here

Ссылки:

1 голос
/ 10 февраля 2020

После некоторых исследований я нашел следующее:

Глядя здесь, я нашел решение, которое должно работать для вас: отформатируйте число с запятыми и десятичными числами в C# (asp. net MVC3)

Чтобы подвести итог публикации, в ней говорится, что вы должны определить переменную (число), а затем инициализировать ее. После этого вы дважды отформатируете: сначала используя .ToDecimal(number), затем .ToString(("#,##0.00")

Теперь давайте применим это к вашему примеру:

Определите и инициализируйте свою переменную - скажем, вы называете ее имя 6-го столбца на вашем листе (для этого примера давайте предположим, что вы определяете его как константу, которая никогда не изменяется с именем «стоимость»)

public const int cost = sheet.Columns[6]

Затем вы хотите отформатировать:

Convert.ToDecimal(cost).ToString("#,##0.00");

Это ДОЛЖНО дать вам желаемый результат.

...