C# OleDb读取Excel文件 避免出现 科学计数法
来源:互联网 发布:苹果手机直播软件 编辑:程序博客网 时间:2024/06/05 00:16
在EXCEL中,输入超过11位数字时,会自动转为科学计数的方式,比如:123456789012345,输入后就变成了:1.23457E14,Excle里可以更改此列的格式为文本。或者添加" ' " ,即 '123456789012345 。先输入一个英文单引号“'”,再输入数值。那么Excel就认为是文本了,而不会强制变为科学计数法。
用c#的OLEDB导入Excel到数据库产生科学计数法问题解决 。
发现Excel的列中只要数字字符较长时oledb读出的记录数据会以科学计数法显示。450107630382345变为4.5010763038+14 。
主要问题在连接字符串。
"Provider=Microsoft.ACE.OleDb.12.0;Data Source=" + FileName + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1'";
OLEDB的Excel的IMEX和HDR是什么意思?
Extended Properties=""Excel 8.0;HDR=yes;IMEX=1""
A: HDR ( HeaDer Row )设置
若指定值为Yes,代表 Excel 档中的工作表第一行是栏位名称
若指定值為 No,代表 Excel 档中的工作表第一行就是資料了,沒有栏位名称
B:IMEX ( IMport EXport mode )设置
IMEX 有三种模式,各自引起的读写行动也不合,容後再述:
0 is Export mode
1 is Import mode
2 is Linked mode (full capabilities)
我这里希罕要申明的就是 IMEX 参数了,因为不合的模式代表著不合的读写行动:
当 IMEX=0 时为“汇出模式”,这个模式开启的 Excel 档案只能用来做“写入”用处。
当 IMEX=1 时为“汇入模式”,这个模式开启的 Excel 档案只能用来做“读取”用处。
当 IMEX=2 时为“连結模式”,这个模式开启的 Excel 档案可同时增援“读取”与“写入”用处。
所谓“4.5010763038+14 ”只是显示用的,实际还是“450107630382345”。所以使用读取即 IMEX=1时,得到“4.5010763038+14 ”。
而 IMEX=0时,得到“450107630382345”。
我们需要把连接字符串改为
"Provider=Microsoft.ACE.OleDb.12.0;Data Source=" + FileName + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=0'";
问题就解决了。
- C# OleDb读取Excel文件 避免出现 科学计数法
- C# OleDb读取Excel文件 避免出现 科学计数法 的列
- 关于OLEDB导入Excel数据,产生科学计数法问题
- 关于OLEDB导入Excel数据,产生科学计数法问题
- C# OLEDB方式读取Excel文件数据
- c# OleDb读取excel
- c# OLEDB读取Excel
- BIEE10导出EXCEL避免自动变成科学计数法
- JAVA读取Excel文件的科学计数类型的解决方法
- 避免科学计数法输出
- C#读取excel--OLEDB方式
- 采用OleDB读取EXCEL文件
- 采用OLEDB读取EXCEL文件
- java poi读取Excel文件,数字变成科学计数法及数字自动带上“.0”的处理办法
- OleDb读取excel中出现空值
- 学习拾遗 --导出excel文件 解决科学计数法问题
- 学习拾遗 --导出excel文件 解决科学计数法问题
- c#中采用OLEDB方式来读取EXCEL文件和将数据写入EXCEL文件
- N次贝塞尔曲线动画
- C++引用类型的原理
- Linux添加USB转串口驱动
- LPC2103 IAR 配置文件详解
- 我的php学习笔记(二十二)php的面向对象开发(九)
- C# OleDb读取Excel文件 避免出现 科学计数法
- Eclipse 用空格代替tab
- ch341.c
- Java 集合 Stack、Queue、Map插入、移除和遍历
- TCP三次握手/四次挥手详解
- Logcat报错
- jQuery的Ajax的自动完成功能控件
- android基础(一) View与六大布局(上)
- 一款好看的可以插入图片的下拉控件