直接通过ODBC读写Excel表格文件
译者:徐景周(原作:Alexander Mikula)

下载本文示例代码

想要通过ODBC直接读、写Excel表格文件,首先,应确保ODBC中已安装有Excel表格文件的驱动"MICROSOFT EXCEL DRIVER (*.XLS)"。然后,可根据下面步骤进行:

1. 在StdAfx.h文件中加入:

#include <afxdb.h> 
#include <odbcinst.h>
 2. 通过ODBC直接创建Excel文件并在表中插入数据(暂定文件名:Demo.xls)
//创建并写入Excel文件
void CRWExcel::WriteToExcel()
{
  CDatabase database;
  CString sDriver = "MICROSOFT EXCEL DRIVER (*.XLS)"; // Excel安装驱动
  CString sExcelFile = "c:\\demo.xls";                // 要建立的Excel文件
  CString sSql;
    
  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 demo (Name TEXT,Age NUMBER)";
      database.ExecuteSQL(sSql);

// 插入数值
      sSql = "INSERT INTO demo (Name,Age) VALUES (''徐景周'',26)";
      database.ExecuteSQL(sSql);

sSql = "INSERT INTO demo (Name,Age) VALUES (''徐志慧'',22)";
      database.ExecuteSQL(sSql);

sSql = "INSERT INTO demo (Name,Age) VALUES (''郭徽'',27)";
      database.ExecuteSQL(sSql);
    }

// 关闭数据库
    database.Close();
  }
  CATCH_ALL(e)
  {
    TRACE1("Excel驱动没有安装: %s",sDriver);
  }
  END_CATCH_ALL;
}
 3. 通过ODBC直接读取Excel文件(暂定文件名:Demo.xls)
// 读取Excel文件
void CRWExcel::ReadFromExcel() 
{
    CDatabase database;
    CString sSql;
    CString sItem1, sItem2;
    CString sDriver;
    CString sDsn;
    CString sFile = "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 region"                 
               "ORDER BY Name ";    //注: region必须为excel中的单元格区域名才可以。如果是工作表名的话会出错。
    
        // 执行查询语句
        recset.Open(CRecordset::forwardOnly, sSql, CRecordset::readOnly);

// 获取查询结果
        while (!recset.IsEOF())
        {
            //读取Excel内部数值
            recset.GetFieldValue("Name ", sItem1);
            recset.GetFieldValue("Age", sItem2);

// 移到下一行
            recset.MoveNext();
        }

// 关闭数据库
        database.Close();
                             
    }
    CATCH(CDBException, e)
    {
        // 数据库操作产生异常时...
        AfxMessageBox("数据库错误: " + e->m_strError);
    }
    END_CATCH;
}
 4. 获取ODBC中Excel驱动的函数
CString CRWExcel::GetExcelDriver()
{
    char szBuf[2001];
    WORD cbBufMax = 2000;
    WORD cbBufOut;
    char *pszBuf = szBuf;
    CString sDriver;

// 获取已安装驱动的名称(涵数在odbcinst.h里)
    if (!SQLGetInstalledDrivers(szBuf, cbBufMax, &cbBufOut))
        return "";
    
    // 检索已安装的驱动是否有Excel...
    do
    {
        if (strstr(pszBuf, "Excel") != 0)
        {
            //发现 !
            sDriver = CString(pszBuf);
            break;
        }
        pszBuf = strchr(pszBuf, ''\0'') + 1;
    }
    while (pszBuf[1] != ''\0'');

return sDriver;
}

直接通过ODBC读写Excel表格文件 译者:徐景周(原作:Alexander Mikula)相关推荐

  1. java使用jxl包读写excel表格文件,即xls格式文件

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java使用jxl包读写excel表格文件,即xls格式文件 本实例演示使用jxl包实现对excel文件的操作,下载 测试代码 public st ...

  2. 手把手教你用java读写excel表格文件(POI,EasyExcel)

    视频链接-我是学习之星我为狂神打call~ [狂神说Java]POI及EasyExcel一小时搞定通俗易懂 想给项目添加一个表格导入导出功能吗? "xxx管理系统"没有导入导出功能 ...

  3. Unity 打包exe 读写Excel表格文件

    Unity 在运行的时候读取用户配置信息,在应用内导出需要保存的信息到Excel 表格 1.导入Excel 读取插件 2.导入打开Windows文件以及文件夹工具(之前有写过) 3.使用方法 1).新 ...

  4. c++使用ODBC读取EXCEL表格

    一.什么是ODBC 开放数据库连接(Open Database Connectivity,ODBC),每种数据库都有一套API(应用程序编程接口), 开发人员可以根据其API操控数据库.这就是所谓的O ...

  5. 使用python用什么软件-Python读写Excel表格,就是这么简单粗暴又好用

    Python读写Excel表格,就是这么简单粗暴又好用 2019-04-18 13:45:31 11点赞 107收藏 1评论 最近在做一些数据处理和计算的工作,因为数据是以.csv格式保存的,因此刚开 ...

  6. python简单代码编写-python读写Excel表格的实例代码(简单实用)

    安装两个库:pip install xlrd.pip install xlwt 1.python读excel――xlrd 2.python写excel――xlwt 1.读excel数据,包括日期等数据 ...

  7. python读取excel表格-python读写Excel表格的实例代码(简单实用)

    安装两个库:pip install xlrd.pip install xlwt 1.python读excel--xlrd 2.python写excel--xlwt 1.读excel数据,包括日期等数据 ...

  8. python处理表格很厉害么_Python读写Excel表格,就是这么简单粗暴又好用

    关注恋习Python(ID:sldata2017) 这是恋习Python之手把手系列第5篇原创首发文章 最近在做一些数据处理和计算的工作,因为数据是以.csv格式保存的,因此刚开始直接用Excel来处 ...

  9. python 写入第二列_python读写Excel表格的实例代码(简单实用)

    这篇文章主要介绍了python读写Excel表格的方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下.需要先安装两个库:pip install xlrd.pip ...

  10. python对excel操作简书_Python读写Excel表格,就是这么简单粗暴又好用

    最近在做一些数据处理和计算的工作,因为数据是以.CSV格式保存的,因此刚开始直接用Excel来处理. 但是做着做着发现重复的劳动,其实并没有多大的意义,于是就想着写个小工具帮着处理. 以前正好在一本书 ...

最新文章

  1. 标准自编码器(TensorFlow实现)
  2. 14 个经典的 Linux 终端命令行,这些工具堪称神器!
  3. 学习OpenCV——SVM
  4. 【Python基础】Python 100 例带你入门
  5. OpenGL Tessellated Triangle镶嵌三角形的实例
  6. Jzoj4891 摆书
  7. ElasticSearch索引的基本操作命令
  8. 树形结构叶子节点的作用_树形结构的算法
  9. vbs 中调用shell.application 简单函数
  10. Glide:重新加载失败的问题
  11. Python中图像标题生成的注意机制实战教程
  12. 夜神模拟器抓包微信小程序
  13. mysql五日均线_怎么设置五日均线?
  14. 支付公司如何赚钱?支付网关如何设计?
  15. java简易计算器报告_简易计算器java实训报告.docx
  16. python 支持erp自动化操作
  17. 大牛讲解信号与系统以及数字信号处理
  18. linux g 使用教程,linux下的gedit命令使用方法与技巧
  19. 用代理IP帮助网络推广
  20. 进出多边形区域、圆形判断

热门文章

  1. 聚名企服商标注册流程及资料(2022新版新手教程)
  2. 上上下下左右左右BABA - 那些80后最难忘的游戏
  3. 牛客编程巅峰赛S1第12场 王者B-上上下下(DP)
  4. springboot vue uniapp公交路线查询系统源码
  5. 《机器学习实战》加利福尼亚州房屋价格 数据结构与可视化
  6. 想查看实时卫星影像?最近一周就不错了
  7. 自然语言处理技术的进展和趋势
  8. Java实现人脸识别登录、注册等功能
  9. 如何使用笔记本无线网卡创建无线热点?
  10. plot confusion_matrix