#include <shlwapi.h>//判断文件是否存在
#pragma comment(lib,"Shlwapi.lib") //如果没有这行,会出现link错误判断文件是否存在
函数如下
bool CExcelnewDlg::jude(CString path_)
{
if (PathFileExists(path_))
{
//判断文件是否存在
//MessageBox("存在");
return 1;
}
else //CreateDirectory(html_path_out1, NULL); //文件夹不存在
return 0;
}
void CExcelnewDlg::writeexcel()
{
//创建Excel文件
CDatabase DB;
//Excel安装驱动
CString StrDriver = "MICROSOFT EXCEL DRIVER (*.XLS)";
//要建立的Execel文件
CString StrExcelFile = "..\\Teachers.xls";
CString StrSQL;
StrSQL.Format("DRIVER={%s};DSN='';FIRSTROWHASNameS=1;READONLY=FALSE;CREATE_DB=%s;DBQ=%s",StrDriver,StrExcelFile,StrExcelFile);
TRY
{
//创建Excel表格文件
DB.OpenEx(StrSQL, CDatabase::noOdbcDialog);
//创建表结构,字段名不能是Index
StrSQL = "CREATE TABLE Teachers(职工号 TEXT, 姓名 TEXT)";
if (!jude("..\\Teachers.xls"))
DB.ExecuteSQL(StrSQL);//表已经存在的话就不用这个了
//插入数值
CString a_,b_;
a_="asd";
b_="fgh";
StrSQL.Format("INSERT INTO Teachers (职工号, 姓名) VALUES ('%s', '%s')", "aa", "bb");
DB.ExecuteSQL(StrSQL);
StrSQL.Format("INSERT INTO Teachers (职工号, 姓名) VALUES ('%s', '%s')", a_, b_);
DB.ExecuteSQL(StrSQL);
//关闭数据库
DB.Close();
}
CATCH(CDBException, e)
{
AfxMessageBox("创建错误:" + e->m_strError);
}
END_CATCH;
MessageBox("创建成功!");
}
void CExcelnewDlg::readexcel()
{
CDatabase DB;
CString StrSQL;
CString StrDsn;
//创建ODBC数据源连接字符串
StrDsn.Format("ODBC;DRIVER={MICROSOFT EXCEL DRIVER (*.XLS)};DSN='';DBQ=..\\teachers.xls");
TRY
{
//打开Excel文件
DB.Open(NULL, false, false, StrDsn);
CRecordset DBSet(&DB);
//设置读取的查询语句
StrSQL = "SELECT * FROM Teachers";
//执行查询语句
DBSet.Open(CRecordset::forwardOnly, StrSQL, CRecordset::readOnly);
//获取查询结果
CString StrInfo = "职工号, 姓名\n";
while(!DBSet.IsEOF())
{
//读取Excel内部数值
for(int i=0; i<DBSet.GetODBCFieldCount(); i++)
{
CString Str;
DBSet.GetFieldValue(i, Str);
StrInfo += Str + " ";
}
StrInfo += "\n";
DBSet.MoveNext();
}
MessageBox(StrInfo); //在信息框中显示
DB.Close();
}
CATCH(CDBException, e)
{
AfxMessageBox("数据库错误:" + e->m_strError);
}
END_CATCH;
}