vc6下win32控制台应用程序通过ODBC连接把文本文件的内容写入Excel

确定添加了Excel的驱动(控制面板-管理工具-数据源-)

代码如下:

#include <afxwin.h>
#include <string>
#include <cstring>
#include <iostream>
#include <fstream>
#include <afxdb.h>
#include <odbcinst.h>

using namespace std;
#define sourcefilename "E://report.txt"

int main()
{
    fstream file1(sourcefilename);
    string vName,vPath,line;
    CDatabase database;
    CString sDriver = "MICROSOFT EXCEL DRIVER (*.XLS)"; // Excel安装驱动
    CString sExcelFile = "e://demo.xls";                // 要建立的Excel文件
    CString sSql,cvName,cvPath;

 // 创建进行存取的字符串
    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,Path TEXT)";
       database.ExecuteSQL(sSql);
               
      }     
 while (!file1.eof())
    {
      getline(file1,line);
      vName=line.substr(17,30);
      vPath=line.substr(54,33);
    cvName.Format("%s",vName.c_str());
   cvPath.Format ("%s",vPath.c_str());
      cout<<"cvName:"<<cvName.GetBuffer()<<"    ";
   cout<<"cvPath:"<<cvPath.GetBuffer()<<endl; 
   cout<<"**********"<<endl;
      TRY
      {
           // 插入数值
        sSql = "INSERT INTO demo (Name,Path) VALUES ('"+cvName+"','"+cvPath+"')";
        database.ExecuteSQL(sSql); 
   }
      CATCH_ALL(e)
      {
            TRACE1("Excel驱动没有安装: %s",sDriver);
      }
      END_CATCH_ALL;
    } //while结束 
    // 关闭数据库
    database.Close();
    return 0;
}

 

为了能使程序运行,修改一下工程配置: 把"project  Setting"的"General"的"no using MFC",改为另外2项中的任一项。

 

还有个关于string类型和CString类型的问题:http://topic.csdn.net/u/20090718/15/d68a2487-691b-4f30-8557-d466817cd268.html?1837755659

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值