首页后端开发ASP.NETc++如何读取excel

c++如何读取excel

时间2024-01-31 10:10:03发布访客分类ASP.NET浏览346
导读:收集整理的这篇文章主要介绍了c++如何读取excel,觉得挺不错的,现在分享给大家,也给大家做个参考。c++如何读取excel?C++ ODBC操作excel全过程推荐:《c++教程》想要通过ODBC直接读、写Excel表格文件,首先,应确...
收集整理的这篇文章主要介绍了c++如何读取excel,觉得挺不错的,现在分享给大家,也给大家做个参考。

c++如何读取excel?C++ ODBC操作excel全过程

推荐:《c++教程》

想要通过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 demo " "ORDER BY Name ";
    // 执行查询语句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;
}
// 获取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;
}
    

更多编程相关内容,请关注编程入门栏目!

以上就是c++如何读取excel的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

上一篇: c语言define什么意思下一篇:vb数组怎么定义猜你在找的ASP.NET相关文章 C# 一些面试试题的实例教程2022-05-16.NET 6开发TodoList应用之请求日志组件HttpLogging介绍2022-04-16.NET 6中间件Http Logging使用介绍2022-04-16gojs一些实用的高级用法2022-04-16.NET6开发TodoList应用之实现查询排序2022-04-16.NET6开发TodoList应用之实现数据塑形2022-04-16.NET微服务架构CI/CD自动打包镜像2022-04-16Asp.Net Core 使用Monaco Editor 实现代码编辑器功能2022-04-16.NET微服务架构CI/CD自动构建Jenkins+Gitee2022-04-16.Net Core微服务网关Ocelot集成Consul2022-04-16 其他相关热搜词更多phpjavapython程序员loadpost-format-gallery

若转载请注明出处: c++如何读取excel
本文地址: https://pptw.com/jishu/593822.html
深入了解JavaScript引擎如何执行JS代码 c语言define什么意思

游客 回复需填写必要信息