.net excel导入时文本格式为空的问题

string str = "SELECT * FROM [Sheet1$]";

return this.cmd.ExecuteReader();

这种访问方式,provider内部机制回去自动推测判断每列的单元格数据储存类型的.

之所以部分行列的单元格指读取不出来,大部分是因为数据类型的问题.

特别是 同一列有数字,而部分数字储存格式不同,你打开EXCEL就可以看到有绿色的小三角在左上角.

这类读取出来就有可能是空

解决同一列中“字符串”和“数字”两种格式同时存在,读取时,不能正确显示“字符串”格式的问题:

方法一:修改代码

set xlsconn=CreateObject("ADODB.Connection") xlsconn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&server.mappath(xlspath)&";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""

主要是驱动的问题,需要添加hdr 和 imex,

其中,hdr取值yes,no ,表示第一行是否为字段名

imex  取值1,2,

其中1  正是解决此问题的关键

方法二:修改Excel

强制将数字和字符串共存列设置为文本格式即可

时间: 2024-10-09 17:17:29

.net excel导入时文本格式为空的问题的相关文章

C# EXCEL导入 混合列文字为空,找不到可安装的 ISAM的解决办法

C# EXCEL导入 混合列文字为空,找不到可安装的 ISAM的解决办法 使用C#导入 Excel数据到 DataTable,如果连接串中只写 Excel 8.0,则正常的字符列,数值列都没有问题,但对于既有数字也有字符的混合列,则读出为空.  后来从网上查到加入IMEX=1 就可将混合型转换为文本,就是连接串为Excel 8.0;IMEX=1,但这有出现 "找不到可安装的 ISAM".  后来在其两边加上单引号' 就可解决.也就是 'Excel 8.0;IMEX=1'  EXCEL

Excel 表格的文本格式莫名其妙变成日期或者货币问题

最近有同事遇到过Excel 表格的文本格式莫名其妙变成日期或者货币,重新设置好格式,保存了,再打开却莫名其妙变日期了或者变成金额了. 解决方法: 1. 打开Excel,任意选中一单元格,单击鼠标右键,选择设置单元格格式.2. 在数字自定义类型中,找到类似前缀为[$-F400]的类型格式(或者类似的比如[$-F800]),点击删除.3. 保存. 参考:http://club.excelhome.net/forum.php?mod=viewthread&tid=1217938&page=1

.net ----------- EXCEL导出为文本格式,

当数值型数据达到12位的时候,将以科学计数法的方式显示在单元格内,数值型数据最多能存储15位有效数字,如果超过15位,可以事先将单元格格式数字设置成文本. //消除Excel导出时长数字自动变成科学计数法 for (int i = 0; i < e.Row.Cells.Count; i++) { e.Row.Cells[i].Attributes.Add("style", "vnd.ms-excel.numberformat:@"); } 前面 <div

关于excel导入手机号提取时被自动加上多余空万国码的问题

//去除excel粘贴自动加上的空万国码“\U202d” "U202c" //去除excel粘贴自动加上的空万国码“\U202d” "U202c" String mobiletemp=messageSendUser.getMobile(); String mobiletemp2=""; if(mobiletemp!=null && !"".equals(mobiletemp)){ for (int i=0;i&

Excel导出时设置单元格的格式为文本

问题: 用excel导出数据时,如何设置单元格格式的数字分类为"文本",默认是"常规"? 比如:导出编码0235A089,在Excel查看默认显示的是没有前面的0. 解决方法: 用设置单元格的 NumberFormatLocal 属性即可: xlapp.Selection.NumberFormatLocal = "@" Excel导出时设置单元格的格式为文本,布布扣,bubuko.com

C# 之 Excel 导入一列中既有汉字又有数字:数字可以正常导入,汉字导入为空

今天在做一个Excel导入功能,一切开发就绪,数据可以成功导入.导入后检查数据库发现有一列既有汉字又有数字,数字正常导入,汉字为空.但是前面同样既有汉字又有数字的列可以导入成功. 查看excel 源文件,如下图: 仔细观察两列略有不同,前两列的数字单元格左上角有个绿色三角形,选中单元格,左边有一个信息显示“ 次单元格中的数字为文本形式,或者前面有撇号. ”,也就是 “ 以文本形式存储的数字 ”. 然后尝试选中内容列,右键设置单元格格式为“ 文本 ”,修改后如下图: 再次导入仍然失败,单元格左上角

C#操作Excel时的格式设定(转)

Excel报表打印的格式设定 1.     表头的设置 Excel._Worksheet myWorksheet; myWorksheet.PageSetup.Orientation = Excel.XlPageOrientation.xlLandscape; //纸张方向, 返回或者设置对象的方向, 纵向或横向打印模式 //Excel.XlPageOrientation.xlLandscape   landscape mode  :worksheet横幅 //Excel.XlPageOrien

asp.net采用OLEDB方式导入Excel数据时提示:未在本地计算机上注册&quot;Microsoft.Jet.OLEDB.4.0&quot; 提供程序&quot;

asp.net采用OLEDB方式导入Excel数据时提示:未在本地计算机上注册"Microsoft.Jet.OLEDB.4.0" 提供程序" 笔者在项目中做做了一个从Excel表格中导入数据的模块.大体上asp.net项目中导入Excel大体分成三类: 1)采用c#内置方案System.Data.OleDb(限制较小, 通用) 2)采用Excel的COM组件(会有版本问题) 3)采用伪Excel文件.即使用文本流的方式根据需求自己定义数据格式.同时在服务端进行反格式化 笔者采

POI对EXCEL的操作【重点:如何设置CELL格式为文本格式】

实际开发过程中通常用到的就是从数据库导出EXCEL表格了,JXL可以这样做,其实POI也可以(关于JXL与POI的异同可访问我之前总结的文章),之前写过POI对七种文档(当然也包括EXCEL)的内容读取操作的文章,这次要写的就非常重要了,就是开发中经常会用到的POI读取数据库导出EXCEL的操作,所谓导出EXCEL也就是生成带数据内容的新的EXCEL文件 目前的POI版本是3.7 下载地址:http://poi.apache.org/download.html#POI-3.7 必须包只有一个:p