最近写了一个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遇到一个错误,为防止工作薄损坏,不得不删除一些格式。请重新仔细检查您的格式。”请高人指教,不胜感激!
(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遇到一个错误,为防止工作薄损坏,不得不删除一些格式。请重新仔细检查您的格式。”请高人指教,不胜感激!
Excel有记录限制,不能大于65535行,而且字段类型没有access规范。