C # PadLeft не работает - PullRequest
0 голосов
/ 02 июля 2018

У меня проблема с получением числовой строки из SQL и переводом ее в Excel, но Excel форматирует число без начальных нулей.

Другая программа, которую я написал, читает Excel и помещает его в PDF. Именно в этой второй программе я решил пополнить недостающие лидирующие нули.

Я использую .PadLeft для этого и столкнулся с некоторыми ошибками. Ради документации, я собираюсь добавить эту проблему, которую я нашел в SO, а также ответить на нее. Здесь была моя проблема:

Мне нужно, чтобы числовая строка состояла из 10 цифр, с нулями на передней панели до 10 цифр.

У меня есть номера, например, 77776666 от Excel, они должны быть 0077776666 (10 цифр) Вот что не работает. Не добавляются нули:

  string insuranceID = Convert.ToString(xlRange.Cells[i, 21].Value2 ?? "");
  insuranceID.PadLeft(10, '0');

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

В C # Строки / строки неизменны, поэтому простое объявление string.PadLeft(x, '0') не будет работать.

Попробуйте вместо этого:

string insuranceID = Convert.ToString(xlRange.Cells[i, 21].Value2 ?? "");   
insuranceID = insuranceID.PadLeft(10, '0');

Чтобы сэкономить ваше время в будущем, неизменность строк также вступает в игру для многих из таких методов, как string.Replace(), string.ToUpper(), string.ToLower() и т. Д.

0 голосов
/ 02 июля 2018

Чтобы этот код работал, мне действительно пришлось написать код примерно так:

string insuranceID = Convert.ToString(xlRange.Cells[i, 21].Value2 ?? "");
insuranceID = insuranceID.PadLeft(10, '0');

Он должен был иметь часть кода для кода в начале бита .PadLeft.

Я не нашел ответа на этот вопрос в SO и только что нашел свой ответ. Я надеюсь, что это помогает кому-то.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...