通过VC实现对Excel表格的操作的方法有多种,如:通过ODBC数据库实现,通过解析Excel表格文件,通过OLE/COM的实现。
一、通过ODBC实现
要点1:添加ODBC支持
在stdafx.h文件中,添加如下代码:
#include <afxdb.h> // Excel
#include <odbcinst.h> <span style="white-space:pre"> </span>// 使用ODBC中安装的Excel驱动
要点2:使用ODBC中的Excel驱动程序建立数据库文件,代码如下,这是《Visual C++数据库编程100例》上面的一个示例:
CDatabase m_database;
CString strDriver = L"MICROSOFT EXCEL DRIVER (*.XLS)"; // Excel驱动程序
CString strExcelFile = L"D:\\ExcelFile.xls"; // 要建立的Excel文件
CString strSQL;
TRY
{
// 创建存取的字符串
<span style="white-space:pre"> </span>strSQL.Format(_T("DRIVER={%s};DSN='';FIRSTROWHASNAMES=1; \
READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s"),
<span style="white-space:pre"> </span>strDriver, strExcelFile, strExcelFile);
// 创建Excel文件
if (m_database.OpenEx(strSQL, CDatabase::noOdbcDialog))
{
// 创建表结构
strSQL = "CREATE TABLE Table1 (StuName TEXT, StuCourse TEXT, StuScore NUMBER)";
m_database.ExecuteSQL(strSQL);
// 插入数值
strSQL = "INSERT INTO Table1 (StuName, StuCourse, StuScore) \
VALUES ('张三', '数学', '80')";
m_database.ExecuteSQL(strSQL);
// 关闭数据库
m_database.Close();
}
}
CATCH_ALL(e)
{
<span style="white-space:pre"> </span>TRACE1("Excel驱动没有安装: %s", strDriver);
}
END_CATCH_ALL;
AfxMessageBox(_T("创建数据库成功!!"));
二、 通过 OLE/COM 实现对 Excel 表格的操作
这里讲的很详细:http://www.cnblogs.com/xianyunhe/archive/2011/09/25/2190485.html