现在找到的基本都是需要存放好一个excel模板,再进行操作。这样生成的exe在别的电脑上使用时,会因为没有模板而出错。能否直接通过vc创建excel进而进行操作,而不需要模板呢?麻烦详细说明下VCExcel

解决方案 »

  1.   

    把一个excel模板文件作为一种定义资源添加到VC工程中,编译后,会将该模板文件加入到exe文件内部,运行时,酱该资源保存成文件就行了
      

  2.   

    用ODBC结合SQL语句就可以动态创建excel模板了。
    以对话框程序为例,在OnInitDialog()中创建模板:
    头文件添加:
    #include <afxdb.h> 
    #include <odbcinst.h>
    全局变量:
    CDatabase database;
    CString   sDriver = "MICROSOFT EXCEL DRIVER (*.XLS)"; // Excel安装驱动
    CString   filepath;
    CString   sSql;//写入的内容
    OnInitDialog()里面:
    OnInitDialog()
    {
    ......................................
    sSql.Format("DRIVER=%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s",sDriver, filepath, filepath);
    database.OpenEx(sSql,CDatabase::noOdbcDialog);
    sSql = "CREATE TABLE  CAUC(个数 TEXT,精度 TEXT,纬度 TEXT,时间 TEXT)";//注意“表”的名称
    database.ExecuteSQL(sSql);
    database.Close();
    }
      

  3.   

    我用在debug文件夹放置模板的方式,已经把代码都写好了。
    其实我只要一个空模板就好了(代替原来放置模板的作用),然后接着我之前的代码。
    那是不是不需要sSql变量,
    sSql = "CREATE TABLE  CAUC(个数 TEXT,精度 TEXT,纬度 TEXT,时间 TEXT)";//注意“表”的名称
    这句也不用写了?
      

  4.   

    几番周折之后终于明白了,关键在于
    m_ExlBook.AttachDispatch(m_ExlBooks.Add(covOptional));替换
    //m_ExlBook.AttachDispatch(m_ExlBooks.Add((_variant_t)TempPath),TRUE);//加载EXCEL模板