我遇到了一个问题,从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');
3条答案
按热度按时间xwmevbvl1#
为了让这段代码正常工作,我实际上必须这样写代码:
它必须将代码的赋值部分放在.PadLeft位的前面。
我在SO上没有找到这个问题的答案,只是找到了我的答案。我希望这能帮助一些人。
s2j5cfk02#
在C#中,字符串/字符串是不可变的,因此简单地声明
string.PadLeft(x, '0')
将不起作用。请尝试以下操作:
为了保存您以后的时间,字符串的不变性也会在许多字符串方法中发挥作用,例如
string.Replace()
、string.ToUpper()
、string.ToLower()
等。vaqhlq813#
您也可以只使用原始代码,但将.PadLeft(10,'0')附加到语句末尾,并删除第二行,如下所示:
从而消除了创建单独语句的需要,而不是可能出于调试目的。