问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C++实现两个xls文件读写,并合并。

发布网友 发布时间:2022-05-02 05:14

我来回答

1个回答

热心网友 时间:2022-06-28 13:22

//写入EXCEL案例:
//在StdAfx.h文件中加入,也可以直接在.CPP里加入
#include <afxdb.h>  
#include <odbcinst.h>  

//通过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; 
};



//读取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; }

追问这个可以么,xls文件不是写的,是要从外面读,而且还要移植到linux上。能加个好友聊一下不?1160296350qq上。

追答可以成功运行,但是我只知道用WinApi来实现读写xls

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
请问昆山正仪到江苏省昆山市出口加工区新竹路99号 怎么坐班车最近? 跪求苏州神达电脑地址!!! 华为运动耳机挂脖式怎么配对 雅酷美挂脖式无线蓝牙防水耳机-运动时尚,自由畅听 已知函数f(x)=cos^2x-sin^2x+2根号3sinxcosx+1 原先微信有联系后来突然对方要求我对他进行朋友验证我没有他电话号码... 已知函数f(x)=cos^2x-sin^2x+2根号3sinxcosx 已知函数fx=cos^2*x-sin^2*x+2sinx*cosx,求fx的最小正周期,并求当... 已知函数f(x)=cos2x-sin2x 4sinx·cosx求f(x)的最小正周期,并求当x为... 已知f(x)=cos^2x-sin^x+2sinxcosx。①求函数最小正周期②当x∈【0... 利用文件输入&#47;输出流编写一个实现文件复制的java应用程序,源文件名和目标文件名 标题“hello everyone nihao!”判断该字符串有多少个单词 做梦大姐边割青草边让我卖坟地是咋回事儿? 利用堆栈,设计算法将一个十进制正整数转换为十六进制数输出。(先设计存储结构,在设计算法,算法要加 python3前端传递的pdf文件对象如何存储到服务器的指定目录 请教怎么用python过滤掉JS文件中的所有注释 python生成多个队列 pyqt5中怎么判断字符串为空 在excel中如何向一个区域输入相同的数 EXCEL如何一列增加同一个数 谁有医院用的 对联 横批 怎么操作把excel表里的所有数据全部加同一个数? 求医院食堂对联下联? EXCEL中多个表格同一位置的数值如何同时加上同一个数? 关于歌颂医生或医学的对联 如何excel多列输入同一个数字 中医对联大全加横批 怎样用excel同时输入同一个数值 医院的对联七字 求对联横批(体检医院大门春联横批) 梦见现站在几百米高坟山上有很多青草? 神奇宝贝快龙超进化 口袋妖怪复刻快龙怎么mega进化 快龙是从什么进化而来的? 生物必修一必修二知识点(浙科版) mega快龙是什么样子的啊?在最强mega进化里哪一集出场过我忘了,谁能发图片给我看一看吗? 口袋妖怪最强进化有没有mega快龙? 口袋妖怪最强进化有没有mega快龙 神奇宝贝绿叶迷你龙几级进化快龙? 口袋妖怪最强超进化有什么精灵阵容和各种屌炸天的技能? 快龙有练的必要吗,不能超进化,并且有四倍弱点 我的世界神奇宝贝哈克龙怎么进化快龙 神奇宝贝xy音波龙和快龙谁厉害 神奇宝贝快龙都有在哪集里出现? 梦见老公和别人好,自己非常生气回来大哭 昨晚做梦梦见老公跟别人好,到最后跳楼,最后老公又救了自己? 灰色上衣,宝蓝色裤子和卡其色裤子配什么颜色的鞋好看 浅灰色配宝蓝色好看不? 宝蓝色和灰色搭配什么颜色好看 我买了一条连衣裙 上身是宝蓝色 下身是灰色的 想配西服 要什么颜色好看呢 灰色搭配什么上衣图片欣赏