Excel不插入前导零

use*_*597 2 c# openxml spreadsheetml openxml-sdk

我使用Office OpenXml写入Excel文件.该文件是一个模板,因此它已经包含了我的列的所有标题和格式.我将具有前导零的数字插入到"特殊"列中,该列基本上是10位数字.但是在我的代码中,我可以看到它正在设置值,例如0000000004.工作表中的结果,该4单元格中的值和实际单元格显示0000000004.

这是我写入单元格的代码.

  if (reader[2].ToString().Length < 9)
  {


        myworksheet.Cell(firstrow, 12).Value = reader[2].ToString(); //0045678945

  }
  else
  {
        myworksheet.Cell(firstrow, 12).Value = reader[2].ToString().Substring(0, 9); //0045678945

  }
Run Code Online (Sandbox Code Playgroud)

当我像上面所述打开excel表时,我的价值45678945不是0045678945

任何帮助,将不胜感激.

Flo*_*ris 7

获得所需结果的最简单方法是将撇号添加到您放入单元格中的值 - 这告诉Excel它是一个字符串:

Cell.Value= "'" & "000123"
Run Code Online (Sandbox Code Playgroud)

将显示为 000123

这里有一些代码可以显示事物是如何工作的(至少它们如何在Excel 2010中工作):

Sub testFormat()
[A1].Value = "000123"
[A2].Value = "'000123"
[A3].Value = "000123"
[A3].NumberFormat = "@"
[A4].Value = "'000123"
[A4].NumberFormat = "@"
End Sub
Run Code Online (Sandbox Code Playgroud)

结果如下:

使用前导零进行格式化

如您所见,有三个单元格显示前导零:

  1. 我输入字符串的单元格,前面有一个撇号
  2. 使用"@"(="text")格式格式化的单元格
  3. 具有撇号和文本格式的单元格

我不知道你做了什么让撇号出现在你的电子表格中......但是我希望上面的内容会激励你解决你的问题.