在MFC里面如何新建表格

在MFC里面如何新建表格,第1张

CListCtrl m_ListTable

m_ListTable.SetExtendedStyle(LVS_EX_FULLROWSELECT)//选中一整行

//设置列数

m_ListTable.InsertColumn(0,_T(g_LoadString("STR_LIST_COLUMNNAME_1")),LVCFMT_LEFT,70,-1)

m_ListTable.InsertColumn(1,_T(g_LoadString("STR_LIST_COLUMNNAME_2")),LVCFMT_LEFT,78,-1)

m_ListTable.InsertColumn(2,_T(g_LoadString("STR_LIST_COLUMNNAME_3")),LVCFMT_LEFT,126,-1)

//添加数据

int iItem = m_ListTable.InsertItem(0,csName)

m_ListTable.SetItemText(iItem,1,dWeight)

m_ListTable.SetItemText(iItem,2,dHeight)

可以用多种方法,比如说用ODBC对excel数据库进行 *** 作,或者说用excel 的COM接口进行编程。我找到一个例子关键代码如下:

//创建并写入Excel文件

void CRWExcel::WriteToExcel()

{

CDatabase database

CString sDriver = "MICROSOFT EXCEL DRIVER (*.XLS)"// Excel安装驱动

CString sExcelFile = "c:\\demo.xls" // 要建立的Excel文件

CString sSql

TRY

{

// 创建进行存取的字符串

sSql.Format("DRIVER={%s}DSN=''''FIRSTROWHASNAMES=1READONLY=FALSECREATE_DB=\"%s\"DBQ=%s",

sDriver, sExcelFile, sExcelFile)

// 创建数据库 (既Excel表格文件)

if( database.OpenEx(sSql,CDatabase::noOdbcDialog) )

{

// 创建表结构(姓名、年龄)

sSql = "CREATE TABLE demo (Name TEXT,Age NUMBER)"

database.ExecuteSQL(sSql)

// 插入数值

sSql = "INSERT INTO demo (Name,Age) VALUES (''徐景周'',26)"

database.ExecuteSQL(sSql)

sSql = "INSERT INTO demo (Name,Age) VALUES (''徐志慧'',22)"

database.ExecuteSQL(sSql)

sSql = "INSERT INTO demo (Name,Age) VALUES (''郭徽'',27)"

database.ExecuteSQL(sSql)

}

// 关闭数据库

database.Close()

}

CATCH_ALL(e)

{

TRACE1("Excel驱动没有安装: %s",sDriver)

}

END_CATCH_ALL

}

// 读取Excel文件

void CRWExcel::ReadFromExcel()

{

CDatabase database

CString sSql

CString sItem1, sItem2

CString sDriver

CString sDsn

CString sFile = "Demo.xls" // 将被读取的Excel文件名

// 检索是否安装有Excel驱动 "Microsoft Excel Driver (*.xls)"

sDriver = GetExcelDriver()

if (sDriver.IsEmpty())

{

// 没有发现Excel驱动

AfxMessageBox("没有安装Excel驱动!")

return

}

// 创建进行存取的字符串

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

TRY

{

// 打开数据库(既Excel文件)

database.Open(NULL, false, false, sDsn)

CRecordset recset(&database)

// 设置读取的查询语句.

sSql = "SELECT Name, Age "

"FROM demo "

"ORDER BY Name "

// 执行查询语句

recset.Open(CRecordset::forwardOnly, sSql, CRecordset::readOnly)

// 获取查询结果

while (!recset.IsEOF())

{

//读取Excel内部数值

recset.GetFieldValue("Name ", sItem1)

recset.GetFieldValue("Age", sItem2)

// 移到下一行

recset.MoveNext()

}

// 关闭数据库

database.Close()

}

CATCH(CDBException, e)

{

// 数据库 *** 作产生异常时...

AfxMessageBox("数据库错误: " + e->m_strError)

}

END_CATCH


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9789029.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存