ODBC读取任意EXCEL表格的要点

关于ODBC读与EXCEL表格,有几个要点,如果不知道,会费些周折,引起困扰。ODBC写EXCEL,比较容易。关键是读任意表格。需要注意文件名,表格名,表格ID(编程标签),命名区域等几个概念的关系,这里特别总结标注一下:

1、文件名是NNN.XLS, NNN.XLSX

2、表格名是Sheet1,Sheet2等打开EXCEL文件后看到的。

3、表格ID(编程标签)是直接看不能的[Sheet1$],[Sheet2$];

4、命名区域是在名称管理器中定义的,也就是选定一部分单元格,给一个统一命名,名字任意。

ODBC读EXCEL表格的SQL语句中 sSql = "SELECT * FROM XXX"; 这里的XXX指的是上面的3和4。也就是表格ID(编程标签),命名区域。

 

附一些有参考意义的别人的贴子

1、vc使用ODBC读excel找不到表的解决办法
    Excel工作簿要通过ODBC进行数据库操作,确实需要一点与其他数据库(例如:ACCESS,FORPRO)不同的设置. 
    因为表名不等于SHEET1,也不等于SHEET2,SHEET3。 
    要访问表 , 必须先定义一个表。 
    方法如下: 
    运行Microsoft Excel , 打开要操作的工作簿, 左键拖拽,选取要定义成为表的区域, 从菜单中选择'插入 '->'名称'->'定义' 
     '定义名称'对话框出现后,键入表的名字, 
     例如:STUDENTS,存盘退出。 
    这样,你就可以在VC中,使用象SELECT * FROM STUDENTS 这样的SQL语句了。试试看
    如果不行,重复上面操作,看看定义表加进入没有

https://blog.csdn.net/jijiliu420/article/details/18037643

2、

// 设置读取的查询语句.

//特别注意此处的[Sheet1$]格式,其中Sheet1是demo.xls文件中的一个数据表,普通excel文件中往往不具备表结构,而通过odbc创建的excel文件具备表结构,这就是网上大多数无法用odbc打开普通excel文件的原因所在(将相应的数据表设置会具备表功能的结构也可以通过直接使用Sheet1打开,具体方法百度即可),直接使用[Sheet1$]这种格式即忽略了文件中是否具有表结构,直接将指定的表名所对应的表当作数据表进行读取操作。

sSql = "SELECT * FROM [Sheet1$]";
————————————————
版权声明:本文为CSDN博主「小伟锅」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u011028345/article/details/77417856

https://blog.csdn.net/u011028345/article/details/77417856

https://blog.csdn.net/u011028345/article/details/77417856?fps=1&locationNum=3

https://blog.csdn.net/topping/article/details/6955888

https://blog.csdn.net/iamlaosong/article/details/53992113

https://blog.csdn.net/weixin_33774883/article/details/93484428

https://blog.csdn.net/qq_32285693/article/details/80940035

https://blog.csdn.net/lileiyuyanqin/article/details/79241629

 

知道了这些,ODBC就可以读取任意表格了。

 

另外,在ODBC读写EXCEL的贴子中,基本没有谈数据类型,也没有谈数据精度的。展示的只是TEXT,NUMBER二种。实际上可以有更多种:

下表显示了如何将 Microsoft Excel 驱动程序数据类型映射到 ODBC SQL 数据类型。 Microsoft Excel 驱动程序基于列中的数据,将这些数据类型分配给 Microsoft Excel 表中的列。

表 1
Microsoft Excel 数据类型ODBC 数据类型
货币SQL_NUMERIC
DATETIMESQL_TIMESTAMP
LOGICALSQL_BIT
NUMBERSQL_DOUBLE
TEXTSQL_VARCHAR
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值