获取Excel以显示完整值

我有一个Excel电子表格,其数值范围是小数点后20位,使用此处的技巧从另一个工作表取消转移。

麻烦的是单元格只显示10位数字,例如,即使值为5.46827166811115,它显示为5.468271668。

我已经尝试设置格式为文本,但它仍然要把它作为一个数字,小数位数的变化,所以我不能使用固定的#。###格式。 我能得到的唯一方法就是将单元格设置为文本格式,然后在每个单元格的input框中进行select,然后单击!

然后,它显示一个警告,单元格中的数字被格式化为文本或在撇号之前,但至less显示完整的值。

我find了一个VBA脚本,只是做了一些愚蠢的简单的cell.Value = cell.Valueselect似乎工作,但我找不到它了,我现在不能再现。

当然有一个更简单的方法来做到这一点? 这并不重要,但是当我通过SSIS将这些数据导入到一个VARCHAR(MAX)中时,它会得到截断值!

预先给数据预先一个撇号' 。 在许多情况下,这比将单元格格式设置为文本更有效。

您可以将单元格格式化为文本,然后执行.AutoFit以便单元展开以显示所有单元格内容,如下所示:

 Columns("A:A").EntireColumn.AutoFit 

这将扩大A:一个单元格,使其所有的内容是可见的。

尝试使用#.000而不是#.000格式化,但是如果您的问题是Excel对您的精度下降,则可以尝试将值乘以10 ^ 20,然后在SQL一侧除以10 ^ 20。

发现更多的信息: 在这里

看起来像Excel限于15个数字的精度,乘以10 ^ 20不会增加精度,所以你可以把它看作文本,或者将剩下的数字拆分到另一个列,并将它们与SSIS或SQL结合起来。

你有没有添加IMEX = 1到你的连接string? 这使SSIS不能从前几行中找出数据。

另外,如何使用十进制数据types而不是varchar(max)