最近写了一个VC操作Excel的程序,利用串口抄读数据,将抄读的数据存到Excel表格中,涉及Excel操作方面的程序如下:
(1)以下是程序初始化时创建表结构:
TRY
{
      // 创建进行存取的字符串
      sSql.Format("DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s",sDriver, sExcelFile, sExcelFile);
      if( database.OpenEx(sSql,CDatabase::noOdbcDialog) )// 创建数据库 (既Excel表格文件)
  {
// 创建表结构
sSql = "CREATE TABLE Wind (WriteTime varchar,LeftWS float,LeftWD int,RightWS float,RightWD int)";
        database.ExecuteSQL(sSql);
  }  
       // 关闭数据库
       database.Close();
  }
    CATCH_ALL(e)
 {
      TRACE1("Excel驱动没有安装: %s",sDriver);
 }
 END_CATCH_ALL; (2)以下是将抄读的数据存入Excel表格:
TRY{
// 创建进行存取的字符串
 sSql.Format("DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s",sDriver, sExcelFile, sExcelFile);
if( database.OpenEx(sSql,CDatabase::noOdbcDialog) )

// 插入数值   
      sSql = "INSERT INTO Wind (WriteTime,LeftWS,LeftWD,RightWS,RightWD) VALUES ('"+ m_Time + "',"+ strLeftWS +","+ m_LeftWD +","+ strLeftWS +","+ m_RightWD +")";
          database.ExecuteSQL(sSql);        
}
// 关闭数据库
//         database.Close();
   }
   CATCH_ALL(e)
   {
   TRACE1("Excel驱动没有安装: %s",sDriver);
   }
END_CATCH_ALL
我验证过程序只能连续正常工作18小时左右,之后就无法数据就无法写入Excel表格。打开表格时,提示“不同的单元格式太多”、“Excel遇到一个错误,为防止工作薄损坏,不得不删除一些格式。请重新仔细检查您的格式。”请高人指教,不胜感激!