我有一个问题,要从SQL提取一个数字字符串并将其放入excel,但是excel格式化该数字时不能将其前导零。
我编写的另一个程序读取excel并将其放入pdf。我决定在第二个程序中重新添加丢失的前导零。
我正在使用.PadLeft执行此操作,并遇到了一些错误。为了文档起见,我将添加到SO中发现的这个问题并予以回答。 这是我的问题:
我需要数字字符串为10位,前面的零到10位。
我有来自Excel的数字77776666,它们应该是0077776666(10位数字) 这是DIDN无法正常工作的地方。它没有附加任何零:
string insuranceID = Convert.ToString(xlRange.Cells[i, 21].Value2 ?? "");
insuranceID.PadLeft(10, '0');
答案 0 :(得分:3)
要使此代码正常工作,实际上我必须像这样编写代码:
string insuranceID = Convert.ToString(xlRange.Cells[i, 21].Value2 ?? "");
insuranceID = insuranceID.PadLeft(10, '0');
它必须将代码的赋值部分放在.PadLeft位的前面。
我在SO上没有找到答案,只是找到了答案。我希望这可以帮助别人。
答案 1 :(得分:0)
在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()
等。