您的位置:首页 > 其它

直接通过ODBC读写Excel表格文件

2014-05-26 22:56 501 查看
想要通过ODBC直接读、写Excel表格文件,首先,应确保ODBC中已安装有Excel表格文件的驱动"MICROSOFT EXCEL DRIVER (*.XLS)"。然后,可根据下面步骤进行:

2:

测试实例

CDatabase database;
	CString sDriver = L"MICROSOFT EXCEL DRIVER (*.XLS)"; // Excel安装驱动
	CString sExcelFile; 
	CString sSql;

	DeleteFile(L"data\\Demo.xls");
	//获取主程序所在路径,存在sPath中
	sExcelFile = L"data\\Demo.xls"; 			// 要建立的Excel文件

	TRY
	{
		// 创建进行存取的字符串
		sSql.Format(L"DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s",sDriver, sExcelFile, sExcelFile);

		// 创建数据库 (既Excel表格文件)
		if( database.OpenEx(sSql,CDatabase::noOdbcDialog) )
		{
			// 创建表结构(姓名、年龄)
			sSql = L"CREATE TABLE Exceldemo (用户名 TEXT,密码 TEXT,电子邮件 TEXT,会员类型 TEXT,联系QQ TEXT,[真实姓名/企业名称] TEXT)";
			//sSql = "CREATE TABLE Exceldemo (Name TEXT,Age NUMBER)";
			database.ExecuteSQL(sSql);

			// 插入数值
			sSql = L"INSERT INTO Exceldemo (用户名,密码,电子邮件,会员类型,联系QQ,[真实姓名/企业名称]) VALUES ('sjs001','mima','sjs001@csdn.com','业主','','设计师001')";
			database.ExecuteSQL(sSql);

						sSql = L"INSERT INTO Exceldemo (用户名,密码,电子邮件,会员类型,联系QQ,[真实姓名/企业名称]) VALUES ('sjs002','mima','sjs002@csdn.com','业主','','设计师002')";
			database.ExecuteSQL(sSql);

						sSql = L"INSERT INTO Exceldemo (用户名,密码,电子邮件,会员类型,联系QQ,[真实姓名/企业名称]) VALUES ('sjs003','mima','sjs003@csdn.com','业主','','设计师003')";
			database.ExecuteSQL(sSql);
		}      

		// 关闭数据库
		database.Close();

		AfxMessageBox(L"Excel文件写入成功!");


需要注意的地方

一开始

sql语句写成

sSql = L"CREATE TABLE Exceldemo (用户名 TEXT,密码 TEXT,电子邮件 TEXT,会员类型 TEXT,联系QQ TEXT,真实姓名/企业名称 TEXT)";
执行后会出现出错信息:字段定义语法错误。

解决方法:

在create table执行的时候报错 应该是列名里含特殊字符, 比如括号,斜杠。。导致语法错误。

如果是这个问题,可以把列名加上[]试试。

形如: CREATE TABLE test( [col/1] TEXT, [col/2] TEXT, [col(3)] TEXT )
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: