c# - 从 .Net 中的 Excel 导入时的科学记数法

标签 c# .net excel oledb

我有一个 C#/.Net 作业,它从 Excel 导入数据,然后对其进行处理。我们的客户放下文件,我们处理它们。我无法控制原始文件。

我使用 OleDb 库来填充数据集。该文件包含一些数字,例如 30829300、30071500 等...这些列的数据类型是“文本”。

当我导入数据时,这些数字被转换为科学记数法。有什么办法可以防止这种情况发生吗?

最佳答案

此问题的一个解决方法是更改​​您的 select 语句,而不是 SELECT * 这样做:

"SELECT Format([F1], 'General Number')  From [Sheet1$]"
 -or-
"SELECT Format([F1], \"#####\")  From [Sheet1$]"

但是,如果您的单元格包含超过 255 个字符并出现以下错误,这样做会失败: “多步 OLE DB 操作产生错误。检查每个 OLE DB 状态值(如果可用)。没有完成任何工作。”

幸运的是,我的客户并不关心在这种情况下出现错误。

这个页面也有很多值得尝试的好东西: http://www.dicks-blog.com/archives/2004/06/03/external-data-mixed-data-types/

关于c# - 从 .Net 中的 Excel 导入时的科学记数法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/429853/

相关文章:

c# - 如何使用方法调用作为参数

c# - 一种抽象子流程成功/失败的方法

c# - 是否可以编写 Skype 客户端?

python - 如果单元格的值为 1,则将数据集中的 0-1 值与列名转换

基于 2 列值的 Excel 计数

c# - 在我的 .NET 代码通过 dllimport 调用非托管 dll 中的函数后,有什么方法可以调试发生了什么?

c# - 从集合中随机返回项目

c# - 在C#项目设置中定义我自己的环境变量

c# - 在 DataGridView 中使用 +(加号)和 -(减号)键盘键作为递增器和递减器

excel - 删除Excel中的特定选项卡