QQ登录

只需一步,快速开始

304上位机VC MFC使用ODBC创建与读取EXCEL表格文件

[ 复制链接 ]

304上位机VC MFC使用ODBC创建与读取EXCEL表格文件

304上位机VC MFC使用ODBC创建与读取EXCEL表格文件

ODBC创建读取EXCEL文件
功能展示
EXCEL是很常用的办公软件,可以创建表格文件,那么我们的数据库文件如何与之相连呢?我们当前例程演示实现这一功能,即使用ODBC创建EXCEL文件(后缀为XLS),与读取EXCEL文件,效果如图,点击<创建EXCEL文件>例程会用ODBC在指定的目录创建XLS文件并显示出文件创建的路径,点击<读取创建EXCEL文件>会将保存的XLS文件读取并显示在列表控件上;

要点提示
EXCEL文件的创建可以用Cdatabase的相关函数实现,OpenEx可以创建Excel表格文件,使用ExecuteSQL执行相关SQL语句可实现相关功能,如“CREATE TABLE 表格名(字段名 字段类型,字段名 字段类型,字段名 字段类型”
可以插入表字段;
如“INSERT INTO MyExcel (网站名称,网站地址,站长微信) VALUES (‘工控编程吧’,‘gkbc8.com’,‘263946146’)”可向插入具体数据

实现功能
1.新建基于对话框的应用程序
2.按照例程界面添加一编辑框IDC_EDIT1,列表控件IDC_LIST1,两按钮控件<创建EXCEL文件><读取创建EXCEL文件>关联按钮点击函数

#include <afxdb.h>
void CGkbc8Dlg::OnCreatexcell()
{
CFileDialog Dlg(FALSE,".xls","工控编程吧",OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"XLS文件(.XLS)|*.XLS|全部文件(*.*)|*.*||");
if(IDOK==Dlg.DoModal())
{
CDatabase DB;
CString StrExcelFile = Dlg.GetPathName();
CString StrDriver = "MICROSOFT EXCEL DRIVER (*.XLS)"; //Excel驱动
CString StrSQL;
StrSQL.Format("DRIVER={%s};DSN='';FIRSTROWHASNameS=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s",StrDriver,StrExcelFile,StrExcelFile);
TRY
{
if(DB.OpenEx(StrSQL,CDatabase::noOdbcDialog) )// 创建Excel表格文件
{
//创建表结构 字段名不能是Index
StrSQL = "CREATE TABLE MyExcel (网站名称 TEXT,网站地址 TEXT,站长微信 TEXT)";
DB.ExecuteSQL(StrSQL);
//插入数值
StrSQL = "INSERT INTO MyExcel (网站名称,网站地址,站长微信) VALUES ('工控编程吧','gkbc8.com','263946146')";
DB.ExecuteSQL(StrSQL);
StrSQL = "INSERT INTO MyExcel (网站名称,网站地址,站长微信) VALUES ('百度','baidu.com','3838438')";
DB.ExecuteSQL(StrSQL);
StrSQL = "INSERT INTO MyExcel (网站名称,网站地址,站长微信) VALUES ('新浪','xinlan.com','1314530')";
DB.ExecuteSQL(StrSQL);

}
DB.Close();// 关闭数据库
}
CATCH_ALL(e)
{
TRACE1("没有安装Excel驱动: %s",StrDriver);
}
END_CATCH_ALL;
MessageBox("Excel文件创建成功!","信息提示",MB_OK);
SetDlgItemText(IDC_EDIT1,Dlg.GetPathName() );
}
}

void CGkbc8Dlg::OnRead()
{
CString StrFile;
GetDlgItemText(IDC_EDIT1,StrFile);
if(StrFile.IsEmpty())
return;

CDatabase DB;
CString StrSQL;
CString StrDsn;
CListCtrl* pListCtrl = (CListCtrl*)GetDlgItem(IDC_LIST1);
pListCtrl->DeleteAllItems();
StrDsn.Format("ODBC;DRIVER={MICROSOFT EXCEL DRIVER (*.XLS)};DSN='';DBQ=%s",StrFile);
TRY
{
DB.Open(NULL, false, false, StrDsn);// 打开Excel文件)
CRecordset DBSet(&DB);
StrSQL = "SELECT * FROM MyExcel";// 设置读取的查询语句
DBSet.Open(CRecordset::forwardOnly, StrSQL, CRecordset::readOnly);//执行查询语句
int nIndex=0;
while (!DBSet.IsEOF())// 获取查询结果
{
pListCtrl->InsertItem(nIndex,"工控编程吧");
CString Str;

for(int i=0;i<DBSet.GetODBCFieldCount();i++)//读取Excel内部数值
{
DBSet.GetFieldValue(i, Str);
pListCtrl->SetItemText(nIndex,i,Str);
}
DBSet.MoveNext();
}
DB.Close();// 关闭数据库
}
CATCH(CDBException, e)
{
AfxMessageBox("数据库错误: " + e->m_strError);
}
END_CATCH;
}
3.程序初始化时,设置列表控件的属性等
CListCtrl* pListCtrl = (CListCtrl*)GetDlgItem(IDC_LIST1);
pListCtrl->ModifyStyle(0,LVS_REPORT);
pListCtrl->InsertColumn(0,"网站名称",LVCFMT_LEFT,80);
pListCtrl->InsertColumn(1,"网站地址",LVCFMT_LEFT,80);
pListCtrl->InsertColumn(2,"站长微信",LVCFMT_LEFT,80);
我们来演示下功能实现的整个过程
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:304.上位机VC MFC使用ODBC创建与读取EXCEL表格文件.zip 
文件大小:141.15 KB  售价:11金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我

  

如果您认可,可联系功能定制!

  

如果您着急,充值会员可直接联系发您资料!

  

QQ联系我

微信扫扫联系我

  

  

您的支持是我们创作的动力!  

  

您可花点闲钱积分自助任意充值

  

成为VIP会员 全站资源任意下载永久更新!




回复

使用道具 举报

点击查看
快速回复 返回列表 客服中心 搜索