求助怎么使用C++来操作excel

weixin_38770699 2018-08-02 02:59:51
因为要做一个排课系统,现在的想法是利用C++来操作excel,而课表由excel输入输出
按照网上的方法,却一直报错,希望大神们帮帮忙
...全文
537 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hongwenjun 2018-08-10
  • 打赏
  • 举报
回复


afxdb.h 头文件 在 atlmfc\include 目录
是mfc的库,需要更新安装吧,或者可能新版本不支持了

weixin_38770699 2018-08-09
  • 打赏
  • 举报
回复
引用 1 楼 zhao3132453 的回复:
头文件afxdb.h
 CString sDriver;    
CString sItem1,sItem2;
CString sDsn;
CString sFile="";//filename
CString sSql;
CFileDialog dlg( TRUE, //true为打开,false为创建
"xls",
"FileList",
OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
"Excel 文件(*.xls)|*.xls||"//此处只取xls格式
);
dlg.m_ofn.lpstrTitle = "导入数据";

if (dlg.DoModal() != IDOK)
return;
//获得文件路径名
sFile = dlg.GetPathName();
//判断文件是否已经存在,存在则打开文件
DWORD dwRe = GetFileAttributes(sFile);
if ( dwRe != (DWORD)-1 )
{
}
else return;
//check driver
//sDriver=GetExcelDriver();
sDriver = "MICROSOFT EXCEL DRIVER (*.XLS)";

sDsn.Format("ODBC;DRIVER={%s};DSN='''';DBQ=%s",sDriver,sFile);

TRY
{
//open db
database.Open(NULL,false,false,sDsn);

CRecordset recset(&database);
//read sql
sSql="SELECT con1,con2 FROM [Sheet1$]";
recset.Open(CRecordset::forwardOnly,sSql,CRecordset::readOnly);

//get query results
while(!recset.IsEOF())
{
//read inside value
recset.GetFieldValue("con1",sItem1);
recset.GetFieldValue("con2",sItem2);
//此处读取到的数据处理
recset.MoveNext();
}

//close db
database.Close();

}
CATCH (CDBException,e)
{
//db exception occur
AfxMessageBox("db error: "+e->m_strError);
}
END_CATCH;

仅供参考

没有这个头文件呢....
半雨微凉丶 2018-08-02
  • 打赏
  • 举报
回复
头文件afxdb.h
 CString sDriver;    
CString sItem1,sItem2;
CString sDsn;
CString sFile="";//filename
CString sSql;
CFileDialog dlg( TRUE, //true为打开,false为创建
"xls",
"FileList",
OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
"Excel 文件(*.xls)|*.xls||"//此处只取xls格式
);
dlg.m_ofn.lpstrTitle = "导入数据";

if (dlg.DoModal() != IDOK)
return;
//获得文件路径名
sFile = dlg.GetPathName();
//判断文件是否已经存在,存在则打开文件
DWORD dwRe = GetFileAttributes(sFile);
if ( dwRe != (DWORD)-1 )
{
}
else return;
//check driver
//sDriver=GetExcelDriver();
sDriver = "MICROSOFT EXCEL DRIVER (*.XLS)";

sDsn.Format("ODBC;DRIVER={%s};DSN='''';DBQ=%s",sDriver,sFile);

TRY
{
//open db
database.Open(NULL,false,false,sDsn);

CRecordset recset(&database);
//read sql
sSql="SELECT con1,con2 FROM [Sheet1$]";
recset.Open(CRecordset::forwardOnly,sSql,CRecordset::readOnly);

//get query results
while(!recset.IsEOF())
{
//read inside value
recset.GetFieldValue("con1",sItem1);
recset.GetFieldValue("con2",sItem2);
//此处读取到的数据处理
recset.MoveNext();
}

//close db
database.Close();

}
CATCH (CDBException,e)
{
//db exception occur
AfxMessageBox("db error: "+e->m_strError);
}
END_CATCH;

仅供参考

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧