C# 读取Excel到DataTable中

本文介绍了在C#中读取Excel到DataTable时遇到的问题,当Excel列包含混合数据类型时,自动识别可能导致数据丢失。通过设置'HDR=NO;IMEX=1'的连接字符串,可以解决此问题,确保所有列读取为字符串类型。同时,通过删除第一行(标题行)来处理列名,并讨论了OLEDB连接字符串的其他参数如HDR和IMEX的含义。
摘要由CSDN通过智能技术生成

1. 先描述下碰到的问题,我的excel中有又一列,有数字和文本,任凭我在Excel中设置单元格格式也无济于事。通过"Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + ";" + "Extended Properties=Excel 8.0;"读取的时候,它会认为那一列为double型,所以文本内容为空,并且在我后面的转换会报异常。而我想把那一列都认为是文本。

为什么呢?

据说,读取excel到DataTable中时,如果Excel中这一列的类型混乱的话,比如说既包括数值型又有字符串型,在运行时创建DataTable的时候,从Excel中前8行进行采样分析,会去先判断Excel中这一列哪种类型的数据占主体,然后给DataTable的列设置为这种类型。比如说,如果一列中既有整数型又有字符型,而整数型单元格占主体,这时DataTable中的列就是整数型。

2. 那么我想把所有的列导入到DataTable时,都为string类型,该怎么弄呢?

经过搜索,使用连接字符串"Provider=Microsoft.Je

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值