我正在使用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

  }


当我如上所述打开excel工作表时,我的值是45678945而不是0045678945

任何帮助,将不胜感激。

最佳答案

如果我正确理解:

Excel显示带前导零的数字,通过OOXML从C#中读取它们,您看不到前导零。

Excel可能会设置一些格式设置规则,而不是存储实际的前导零。

有几种方法可以解决这一问题。这是我想到的“最便宜的”产品之一:


将Excel中的列设置为文本格式
在C#代码中不要期望前导零,而是添加它们

关于c# - Excel不插入前导零,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15143753/

10-11 20:18