c++ 读写Excel及数据导入SQLServer

c++ 读写Excel及数据导入SQLServer
      
          C++操作Excel ,网上的资料还是比较多的,写这篇文章也是分享给初学者一些经验。                 
本人 觉得CSpreadSheet.h这个类封装的还不错。下面我就如何使用这个类介绍一下,
[cpp] 
main.cpp/  
  
#include <string>  
#include<afxdb.h>  
#include<odbcinst.h>  
#include "CSpreadSheet.h"  
using std::string;  
  
#pragma warning(disable:4146)  
#pragma warning(disable:4786)  
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")  
  
//插入到 数据库  
bool InsertExcel(CString str1,CString str2)  
{    
 try     
 {     
  CDatabase m_db;  
  if (!m_db.IsOpen())   
   {   
    m_db.OpenEx("Dsn=MyDatabase;uid=Administrator;trusted_connection=Yes;app=Microsoft? Visual Studio? 2005;wsid=LIYU\SQLEXPRESS;database=MyDdatabase",0);  
   }  
    
  CString sql("insert into Students(myname,age) values('"+ str1+"','"+str2+"')");  
  m_db.ExecuteSQL(sql);  
  
  if(m_db.IsOpen())   
  {   
    m_db.Close();  
  }   
  return true;  
 }     
 catch(_com_error e)      
 {     
  string ErrorMessage("数据库连接关闭失败:"),Description,Source;  
  Description=e.Description();  
  Source=e.Source();  
  ErrorMessage+=e.ErrorMessage();  
  ErrorMessage=ErrorMessage+"\r\n"+Source+"\r\n"+Description;  
  ::MessageBox(NULL,ErrorMessage.c_str(),"错误",MB_OK);  
  return   false;     
 }     
   
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
C++中,可以使用ADO(ActiveX Data Objects)来导入Excel数据数据库。 首先,需要准备工作: 1. 将Excel表另存为DBF 4格式。 2. 打开C++编程环境,并添加ADO组件。 以下是一个示例代码,演示了如何将Excel数据导入数据库: ```c++ #include <iostream> #include <string> #include <vector> #include <windows.h> #import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "adoEOF") using namespace std; int main() { // 初始化ADO对象 CoInitialize(NULL); try { _ConnectionPtr pConn("ADODB.Connection"); // 连接到数据库 pConn->Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\\path\\to\\database.mdb;"); // 打开Excel文件 _RecordsetPtr pRS("ADODB.Recordset"); pRS->Open("SELECT * FROM [Sheet1$ IN '' [Excel 8.0; HDR=NO; IMEX=1;];", pConn.GetInterfacePtr(), adOpenStatic, adLockOptimistic, adCmdText); // 遍历Excel数据并插入数据库 while (!pRS->adoEOF) { // 获取每一行数据并插入数据库 for (int i = 0; i < pRS->Fields->Count; i++) { _variant_t value = pRS->Fields->GetItem(i)->Value; // 将value插入数据库 } // 移动到下一行 pRS->MoveNext(); } // 关闭记录集和连接 pRS->Close(); pConn->Close(); } catch (_com_error &e) { cout << "Error: " << e.ErrorMessage() << endl; } // 释放COM资源 CoUninitialize(); return 0; } ``` 请注意,上述代码中的“C:\path\to\database.mdb”应替换为你实际的数据库文件路径。 这段代码使用了ADO连接到数据库,并通过SQL语句选择Excel表中的数据,然后遍历每一行,并将数据插入到数据库中。 希望这个例子对你有所帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值