用ODBC访问Excel

使用ODBC从Excel直接读写数据的实战教程 ODBC(Open Database Connectivity)是一种开放标准的数据库访问接口,由微软推出,以统一的方式连接不同类型的数据库。ODBC依赖于驱动程序管理器和不同类型的驱动程序,这些驱动程序能够将应用层的SQL调用转换成目标数据库可以理解的命令。Excel作为数据存储和分析的常用工具,通过ODBC可以将其与各种数据库系统连接,实现数据导入导出、查询和更新等操作。ODBC在Excel中的应用使得非技术人员也能利用SQL进行复杂的数据分析,极大地增强了Excel的数据处理能力。 阅读详情

分类: WINDOWS

//////////////////////////////////////////////////////////////////////////////
//名称:OnReadexcel
//功能:从Excel文件中读取相应数据并显示出来
//作者:徐景周( jingzhou_xu@163.net)
//组织:未来工作室(Future Studio)
//日期:2002.9.1
/////////////////////////////////////////////////////////////////////////////
void CRWExcelDlg::OnReadexcel() 
{
 CDatabase database;
    CString sSql;
    CString sItem1, sItem2;
    CString sDriver;
    CString sDsn;
    CString sFile,sPath;
                                    
 //获取主程序所在路径,存在sPath中
 GetModuleFileName(NULL,sPath.GetBufferSetLength (MAX_PATH+1),MAX_PATH);
 sPath.ReleaseBuffer ();
    int nPos;
 nPos=sPath.ReverseFind ('\\');
 sPath=sPath.Left (nPos);
 sFile = sPath + " \\Demo.xls";    // 将被读取的Excel文件名
    // 检索是否安装有Excel驱动 "Microsoft Excel Driver (*.xls)" 
    sDriver = GetExcelDriver();//作者自己写的函数
    if (sDriver.IsEmpty())
    {
        // 没有发现Excel驱动
        AfxMessageBox("没有安装Excel驱动!");
        return;
    }
    
    // 创建进行存取的字符串
    sDsn.Format("ODBC;DRIVER={%s};DSN='';DBQ=%s", sDriver, sFile);
    TRY
    {
        // 打开数据库(既Excel文件)
        database.Open(NULL, false, false, sDsn);
        
        CRecordset recset(&database);
        // 设置读取的查询语句.
        sSql = "SELECT Name, Age "       
               "FROM Exceldemo " ;                
               "ORDER BY Name ";
    
        // 执行查询语句
        recset.Open(CRecordset::forwardOnly, sSql, CRecordset::readOnly);
        // 获取查询结果
        while (!recset.IsEOF())
        {
            //读取Excel内部数值
            recset.GetFieldValue("Name", sItem1);
            recset.GetFieldValue("Age", sItem2);
   //显示记取的内容
   m_ExcelList.AddString( sItem1 + " --> "+sItem2 );
            // 移到下一行
            recset.MoveNext();
        }
        // 关闭数据库
        database.Close();
                             
    }
    CATCH(CDBException, e)
    {
        // 数据库操作产生异常时...
        AfxMessageBox("数据库错误: " + e->m_strError);
    }
    END_CATCH;

}
//////////////////////////////////////////////////////////////////////////////
//名称:GetExcelDriver
//功能:获取ODBC中Excel驱动
//作者:徐景周( jingzhou_xu@163.net)
//组织:未来工作室(Future Studio)
//日期:2002.9.1
/////////////////////////////////////////////////////////////////////////////
CString CRWExcelDlg::GetExcelDriver()
{
    char szBuf[2001];
    WORD cbBufMax = 2000;
    WORD cbBufOut;
    char *pszBuf = szBuf;
    CString sDriver;
    // 获取已安装驱动的名称(涵数在odbcinst.h里)
    if (!SQLGetInstalledDrivers(szBuf, cbBufMax, &cbBufOut))
        return "";
    
    
    do
    {  //检索已安装的驱动是否有Excel,如果没有则先在ODBC中添加一个名为"Excel"的项
        if (strstr(pszBuf, "Excel") != 0)// 
        {
            //发现 !
            sDriver = CString(pszBuf);
            break;
        }
        pszBuf = strchr(pszBuf, '\0') + 1;
    }
    while (pszBuf[1] != '\0');
    return sDriver;
}
//////////////////////////////////////////////////////////////////////////////
//名称:OnWriteexcel
//功能:创建并写入数据到Excel文件中
//作者:徐景周( jingzhou_xu@163.net)
//组织:未来工作室(Future Studio)
//日期:2002.9.1
/////////////////////////////////////////////////////////////////////////////
void CRWExcelDlg::OnWriteexcel() //此函数是通过CRWExcelDlg对话框类中的一个按钮调用
{
  CDatabase database;
  CString sDriver = "MICROSOFT EXCEL DRIVER (*.XLS)"; // Excel安装驱动
  CString sExcelFile,sPath; 
  CString sSql;
    
  //获取主程序所在路径,存在sPath中
  GetModuleFileName(NULL,sPath.GetBufferSetLength (MAX_PATH+1),MAX_PATH);
  sPath.ReleaseBuffer ();
  int nPos;
  nPos=sPath.ReverseFind ('\\');
  sPath=sPath.Left (nPos);
  sExcelFile = sPath + " \\Demo.xls";    // 要建立的Excel文件
  TRY
  {
    // 创建进行存取的字符串
    sSql.Format("DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s",sDriver, sExcelFile, sExcelFile);
    // 创建数据库 (既Excel表格文件)
    if( database.OpenEx(sSql,CDatabase::noOdbcDialog) )
    {
      // 创建表结构(姓名、年龄)
      sSql = "CREATE TABLE Exceldemo (Name TEXT,Age NUMBER)";
      database.ExecuteSQL(sSql);
      // 插入数值
      sSql = "INSERT INTO Exceldemo (Name,Age) VALUES ('徐景周',26)";
      database.ExecuteSQL(sSql);
      sSql = "INSERT INTO Exceldemo (Name,Age) VALUES ('徐志慧',22)";
      database.ExecuteSQL(sSql);
      sSql = "INSERT INTO Exceldemo (Name,Age) VALUES ('郭徽',27)";
      database.ExecuteSQL(sSql);
    }     
    // 关闭数据库
    database.Close();
 AfxMessageBox("Excel文件写入成功!");
  }
  CATCH_ALL(e)
  {
    TRACE1("Excel驱动没有安装: %s",sDriver);
  }
  END_CATCH_ALL;
 
}
 
 
 
/////////////////////以上代码为转载////////////////////////////////////////
ODBC 直接访问 excel 提供了ODBC 直接访问excel 的实例源码,仅供参考 立即下载

相关推荐

北京联通IPTV组播实战:OpenWRT软路由配置全解析

本文详细解析了在北京联通IPTV环境下,利用OpenWRT软路由和udpxy工具实现组播转单播的实战配置。内容涵盖网络接口设置、防火墙规则、udpxy安装配置、直播源M3U文件处理以及全平台播放指南,帮助用户无需机顶盒即可在家庭局域网内任何设备上流畅观看电视直播。

weixin_29313547的博客 1416

C++使用ODBC读写Excel文件详细介绍

详细介绍使用ODBC对Excel文件进行操作的方法及步骤

tiantiandun的博客 2401

Windows11下QGIS 3.34.4安装Geo-SAM插件全流程(附RTX3060 CUDA12.0配置技巧)

本文详细介绍了在Windows 11系统中为QGIS 3.34.4安装和配置Geo-SAM插件的完整流程,特别针对RTX 3060显卡用户提供了CUDA 12.0与PyTorch环境的精准搭建方案。通过预编码与交互式分割两大核心步骤,该插件能显著提升遥感图像半自动标注的效率,降低硬件门槛,是地理信息处理领域融合AI技术的实用指南。

weixin_29089057的博客 297

excel通过odbc访问excel

【代码】excel通过odbc访问excel。

窦永厚 1072

C#调用Halcon程序三种方法

C#调用Halcon程序三种方法 1.halcon导出C#文件,在C#里面调用 2.在C#里面使用Halcon引擎调用Halcon程序 3.在C#里面使用Halcon引擎调用.hdev下本地函数或者.hdvp外部函数 Halcon引擎手册:C:/Program Files/MVTec/HALCON-21.11-Progress/doc_en_US/html/manuals/programmers_guide/programmers_guide_0120.html 1.导出C#(代码我只给出类,需要调用)

A541925504的博客 1万+

有限状态机FSM详解(一)

有限状态机在维基百科中的解释是: 有限状态机(英语:finite-state machine,缩写:FSM)又称有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。 至于为什么要学FSM,FSM可以把模型的多状态、多状态间的转换条件解耦。可以使维护变得容易,代码也更加具有可读性,也更加艺术。 理解有限状态机首先需要理解整个模型。我们把灯的开关作为示例,...

benjonc的博客 5万+

C++使用ODBC驱动读取EXCEL表格(只读)

该驱动与已经安装的Office位数有冲突性,比如安装的Office是32位,那么驱动就无法安装64位,同样如果Office安装的是64位,则ADE也无法安装32位,必须不冲突,但不要求系统必须安装Office。i++)//行计数是从1开始的,所以读写第N行是执行(N-1)次跳转.i++)//行计数是从1开始的,所以读写第N行是执行(N-1)次跳转.cout<<"C13"单元格上的内容是:"<<strText<<endl;cout<<"F16"单元格上的内容是:"<<strText<<endl;

download3564124的博客 1454

从零构建:openEuler WSL下的ARM交叉编译工具链自动化部署方案

本文详细介绍了在openEuler WSL环境下使用Ansible自动化部署ARM交叉编译工具链的方案。通过编写Ansible角色和Playbook,实现从基础环境配置到工具链安装、环境变量设置的一键部署,大幅提升嵌入式开发效率。方案支持多种ARM架构,并扩展了QEMU仿真、VS Code远程开发等实用功能,是嵌入式开发者的高效解决方案。

h3i4j的博客 383

用ODBC访问EXCEL文件

在VC 6.0中,新建一个Win32 Application工程. 按Alt+F7工程设置中, 在General 标签下,选择Microsoft Foundation Classes下面为: Use MFC in a Shared DLL. 这点很重要.    然后再输入以下代码://-----------------------------------------------------

eryar 1175

Cursor AI编程工具保姆级安装指南:从下载到中文界面设置(含免费额度说明)

本文提供Cursor AI编程工具的保姆级安装与设置教程。详细指导从官网下载、安装到中文界面切换的每一步,并重点说明其每月500次高级模型调用的免费额度策略。通过个性化设置与核心插件推荐,帮助开发者快速上手,提升AI辅助编程效率。

weixin_29191761的博客 674

配置 NVIDIA RTX 5090 + sm_120 + flashattention,已跑通一个大模型 ~~

本文介绍了在Ubuntu 22.04系统下为NVIDIA RTX 50系显卡搭建深度学习环境的完整流程。重点包括:1)安装适配50系显卡(sm_120架构)的CUDA 12.9驱动和Toolkit,需注意禁用系统自带驱动;2)配置环境变量解决nvcc命令识别问题;3)通过源码编译方式安装支持sm_120的PyTorch nightly版本(cu129),解决官方二进制包不兼容问题。整个过程涉及显卡驱动安装、CUDA环境配置、PyTorch适配等关键步骤,并提供了详细的验证方法和常见问题解决方案。文中特别强调

qq_36674060的博客 6160

java通过桥访问excel_通过jdbc-odbc桥来访问excel文件

通过jdbc-odbc桥来访问excel文件 pcera说是对文件的操作有点牵强附会,毕竟这是对单一类型的文件具体操作 。这是一段通过jdbc-odbc桥来对excel的访问的程序,此方法的原创真是可谓随心所欲呀!!这里的随心所欲可是绝对的褒义!我认为这个方法要比通过Java Excel API(jxl.*)访问excel文...

weixin_33324435的博客 271

SAP 替代关系完全替代简介

这里产生了成品物料的计划订单,我们查看计划订单中BOM的变化,如下图可以看到物料的需求仍然落在了优先级为1的这个302300005555这个物料上面,并没有考虑到302300006666的这个库存,和我们理解的MRP的完全替代不一样,按我们的理解需求应该是要落在302300006666这个物料料,但是MRP计算后并没有这样进行分配。最近用户在对长周期物料进行备料的时候又提出替代料的问题,主料库存不足的时候需要考虑替代料的在途库存,经常会忘了SAP标准的替代料逻辑,这次一次性把这个逻辑写清楚。

我小时候很黑的博客 1753

如何通过ODBC访问excel文件

通过OBDC,以下是代码     想要通过ODBC直接读、写Excel表格文件,首先,应确保ODBC中已安装有Excel表格文件的驱动"MICROSOFT   EXCEL   DRIVER   (*.XLS)"。然后,可根据下面步骤进行:     1. 在StdAfx.h文件中加入:     #include         #include           2. 通过ODBC直接创建Ex

Ray的专栏 1487

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

通过jdbc-odbc桥来访问excel文件

                                                    通过jdbc-odbc桥来访问excel文件                                      pcera        说是对文件的操作有点牵强附会,毕竟这是对单一类型的文件具体操作 。        这是一段通过jdbc-odbc桥来对excel的访问的程序,此方法的

pcera的专栏 1993

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

[转]通过jdbc-odbc桥来访问excel文件

  记录,备用 通过jdbc-odbc桥来访问excel文件    说是对文件的操作有点牵强附会,毕竟这是对单一类型的文件具体操作 。   这是一段通过jdbc-odbc桥来对excel的访问的程序,此方法的原创真是可谓随心所欲呀!!这里的随心所欲可是绝对的褒义!我认为这个方法要比通过Java Excel API(jxl.*)访问excel文件要方便。但是通过桥向excel的写入我还没有调试出...

wutheringsea 165

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

用ODBC访问Excel时SELECT语句中需写table的名字

在网上参考了别人的VC下用ODBC直接访问Excel的文章,可是调试时总是弹出“数据库错误: Microsoft Jet 数据库引擎找不到对象'xls'。请确定对象是否存在,并正确地写出它的名称和路径”,这句提示真的很误导人,一开始真以为是文件路径或者名称不对,实际上是里面的表名不对,正确的写法是"FROM [表名$]"。

topping的专栏 1657

ODBC访问Excel表如何确认列的数据类型

现象:通过ODBC往数据库中导入Excel表,或者是在程序中使用ODBC访问Excel表时,可能某些行会产生数据类型不符的错误。原因:Microsoft Excel ODBC 驱动程序默认扫描前8行的数据来确定每列中的数据类型。Microsoft Excel ODBC 驱动程序使用以下注册表项中TypeGuessRows键值来确定扫描多少行确定数据类型:  Excel 97 HKEY_

鶴舞白沙的专栏 1147

ODBC访问EXCEL

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34162695的博客 231

Excel 使用ODBC直接访问

原来Excel 可以使用ODBC直接访问啊,一直以来都是一格一格读取,比较烦,这次又学习了!! 此处记录ODBC连接Excel的DSN字符串: “DRIVER={Microsoft Excel Driver (*.xls)};FIRSTROWHASNAMES=1;READONLY=FALSE;DBQ=%1” —%1 为要连接的Excel文件。

nowhaha的专栏 7903

关于以ODBC和ADO方式访问excel数据库总结

温馨提醒,看帖子前请复习下连接数据方式有哪几种,以及各有什么优缺点,然后再来看本贴。  首先阐述一个小问题,如何用excel建立一张表呢? 1.excel 2003的情况,假如excel中第一行是字段名,第二行以后是数据行,则选择多行(包括第一行),然后菜单中选择“插入”->名称->自定义名称。其中这个名称就是表名,用在select * from 表名语句中。 2.excel 2007的情况

zhg598242449的专栏 6620

通过jdbc-odbc访问excel

一、配置和说明 1、 JDBC-ODBC桥作为包sun.jdbc.odbc与JDK一起自动安装,无需配置驱动包。 2、设置数据源:控制面板-->管理工具-->数据源(ODBC)-->单击“用户DSN”选项卡-->选择包含*.xls的驱动程序。双击它,进入它的配置界面,单击“选择工作薄”选择你的目标excel文件。 3、excel表单的第一行为列名行 二、程序实例   import ja

Assassin_Me的专栏 1482

java通过桥访问excel_javajdbc-odbc桥读取excel指导.doc

javajdbc-odbc桥读取excel指导.doc还剩7页未读,继续阅读下载文档到电脑,马上远离加班熬夜!亲,喜欢就下载吧,价低环保!内容要点:专门操作 EXCEL 文件的 Java API。Jakarta POI 和 Java Excel API 就是其中的两个 Open Source项目。感兴趣的可以从网上搜索一下,应该会有很多关于的资料。 ExcelAccess ea = ...

weixin_39924198的博客 162

QT通过ODBC访问Excel表

下面只写出关键语句。例子程序只给出一个,select查询的,其他操作都类似。细心研究!#include #include int main( int argc, char *argv[] ){QApplication app( argc, argv );QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");db.setDatabaseName

xcykkk的专栏 1461
上一篇: github for Windows使用介绍
下一篇: 2013年或将是游戏微主机的时代
zxycode007
博客等级 码龄18年 53粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值