如何在Excel中显示长数字?

我必须build立一个C#程序,使CSV文件和长数字(作为string在我的程序)。 问题是,当我在Excel中打开这个CSV文件的数字是这样的:

1234E +或1234560000000(数字结尾为0)

我如何保留数字的格式? 如果我打开文件作为文本文件,数字格式正确。

提前致谢。

将这些长数字格式化为string,方法是将“(撇号)”放在前面或将其作为公式:=“1234567890123”

正如其他人所说,你可以强制数据是一个string。 最好的方法是=“1234567890123”。 =使单元格成为公式,并且引号将封闭的值作为Excelstring文字。 这将显示所有数字,甚至超出Excel的数字精度限制,但单元格(通常)将不能直接用于数字计算。

如果您需要数据保持数字,最好的方法是创build一个本机Excel文件(.xls或.xlsx)。 可以在这个相关的堆栈溢出问题的解决scheme中find各种方法。

如果您不介意拥有数千个分隔符,还可以使用另一个技巧,即让您的C#程序插入数千个分隔符,并将引号括起来:“1,234,567,890,123”。 不要包含前导=(因为这会强制它是一个string)。 请注意,在这种情况下,引号用于保护CSV中的逗号,而不是用于指定Excelstring文字。

你不能。 Excel存储十五位精度的数字。 如果您不介意不能在Excel中对数字进行计算,则可以将它们存储为文本,并显示所有数字。

当我生成要导入Excel的数据时,如果要控制数据的显示方式,则不生成CSV文件。 相反,我写出了一个Excel文件,其中单元格的属性被适当地设置。 我不知道是否有一个库在那里可以为你在C#中完成,而不需要在生成文件的机器上安装Excel,但是这是需要研究的。

我的两分钱:
我认为重要的是要认识到“数据”和“格式”之间存在差异。 在这个例子中,你是试图存储在一个纯数据文件。 从其他答案中可以看出,这将改变数据的性质。 (换句话说就是把它转换成一个string,一个CSV文件是一个只有数据的文件,你可以在这里和那里做一些技巧来合并格式化数据,但是我认为这种方式本质上是通过合并来破坏数据它与非数据值:即:“格式”。
如果你真的需要能够存储格式化信息,我build议,如果你有时间来开发它,你切换到一个文件types能够存储格式化信息与数据分开。 这听起来像这个问题将是一个XML电子表格解决scheme的好候选人。 通过这种方式,您不仅可以指定您的数据,还可以指定您select使用的types和格式。