当使用c#从Excel中读取大于12位的数字时,数字被转换为零

我试图从Excel文件使用C#使用下面的查询读取长度大于12位数字的数字

"select Format([F1], 'Number') as Code"; 

但我只得到12位数字,其余的数字转换为零。为什么这样呢?

例如: 787767786546347从excel文件读取我得到的是787767786546000

根据MSDN:

Excel遵循关于如何存储和计算浮点数的IEEE 754规范。 因此,Excel只能存储一个数字中的15位有效数字,并将第15位后的数字改为零。

要解决此问题,请将文本格式设置为文本格式。 单元格可以显示多达1024个字符。

http://support.microsoft.com/kb/269370