通过ODBC直接读、写Excel表格文件
- 格式:docx
- 大小:15.47 KB
- 文档页数:1
Excel数据连接Excel作为一款强大的电子表格软件,不仅可以用来进行数据的存储和分析,还可以通过数据连接的功能,实现与其他数据库、文件以及网络数据的交互。
本文将介绍Excel数据连接的相关知识和操作步骤,帮助读者更好地利用Excel进行数据处理和分析。
一、什么是数据连接数据连接是指将Excel与其他数据源进行连接,实现数据的共享和传递。
通过数据连接,我们可以将不同数据源中的数据集成到Excel中,实现数据的集中管理和分析。
常见的数据源包括:Access数据库、SQL Server数据库、Oracle数据库、文本文件、XML文件等。
此外,还可以通过Web查询、ODBC连接、数据透视表等功能,将不同数据源中的数据实时更新到Excel中。
二、Excel中的数据连接方式1. 数据导入数据导入是将其他数据源中的数据直接复制到Excel中,形成一个独立的数据表。
在Excel中,可以选择“数据”选项卡中的“获取外部数据”功能,然后选择相应的数据源进行数据导入。
2. 数据查询数据查询是通过建立查询连接的方式,实现Excel与外部数据源的实时交互。
在Excel中,可以选择“数据”选项卡中的“获取外部数据”功能,然后选择相应的数据源进行数据查询。
3. 数据透视表数据透视表是一种快速、灵活的数据分析工具,可以将不同数据源中的数据进行关联和汇总。
在Excel中,可以通过数据透视表的功能,对外部数据源中的数据进行分析和展示。
三、Excel数据连接的操作步骤1. 数据导入(1)打开Excel软件,创建一个新的工作簿。
(2)选择“数据”选项卡中的“获取外部数据”功能,然后选择相应的数据源。
(3)按照提示,设置数据源的连接信息和导入选项。
(4)确认并导入数据到Excel中。
2. 数据查询(1)打开Excel软件,创建一个新的工作簿。
(2)选择“数据”选项卡中的“获取外部数据”功能,然后选择相应的数据源。
(3)按照提示,设置数据源的查询条件和连接信息。
Java读取Excel文件的几种方法最近单位有个项目需要读取excel文件的内容,特别对java读取excel文件的方法做了一点学习,也为了其他人以后能更简单地开发,少走弯路,特写此文,以下程序经过了我的测试,可以保证程序可用,如果你照搬都不行,可能是你的环境有问题。
读取excel文件的常用开源免费方法有以下几种:JDBC-ODBC Excel Driverjxl.jarjcom.jarpoi.jar下面分别对这几种方法分别进行探讨1、JDBC-ODBC Excel Driver这种方法是将excel看成是数据库进行操作,使用SQL Select语句即可查询excel表格。
优点是:不需要第三方的jar包。
如下表样首先在控制面板进行数据源ODBC登记具体方法如下:下面就是代码了。
package xuzhe;import java.io.*;import java.sql.*;//java xuzhe.ExcelJDBCpublic class ExcelJDBC {public static void main(String[] args) throws SQLException{Connection con = null;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");con = DriverManager.getConnection( "jdbc:odbc:ExcelJDBC" );Statement st = con.createStatement();ResultSet rs = st.executeQuery( "Select * from [Sheet1$]" );ResultSetMetaData rsmd = rs.getMetaData();int numberOfColumns = rsmd.getColumnCount();System.out.println ("表格列数"+numberOfColumns );System.out.println( rsmd.getColumnName(1)+ "," +rsmd.getColumnName(2) + "," + rsmd.getColumnName(3));while (rs.next()) {for (int i = 1; i <= numberOfColumns; i++) {if (i > 1) System.out.print(", ");String columnValue = rs.getString(i);System.out.print(columnValue);}System.out.println("");}rs.close();st.close();}catch(Exception ex) {System.err.print("Exception: ");System.err.println(ex.getMessage());}finally {con.close();}}}执行结果如下:2、jxl.jarjxl.jar为开源代码,任何运行java虚拟机的操作系统都能使用这个jar包操作excel表格。
Excel高级技巧使用外部数据源进行数据导入Excel是一款功能强大的电子表格软件,广泛应用于数据处理和数据分析领域。
除了通过手工输入数据,用户还可以通过使用外部数据源来导入数据,以提高工作效率和减少错误。
本文将介绍一些Excel的高级技巧,以帮助用户更好地使用外部数据源进行数据导入。
一、使用导入向导导入数据Excel的导入向导是一种简便的方法来将外部数据导入到Excel中。
用户可以通过以下步骤来进行操作:1. 打开Excel,并选择“数据”选项卡。
2. 点击“获取外部数据”按钮,在弹出的菜单中选择“从其他源导入”。
3. 在弹出的“导入数据”对话框中,选择适合的外部数据源,如数据库、文本文件等。
4. 根据具体的外部数据源类型,在相应的选项卡中设置数据导入的参数,如选择要导入的数据表、选择数据范围、设置筛选条件等。
5. 点击“确定”按钮,Excel将根据用户的设置自动导入外部数据。
通过导入向导,用户可以方便地从各种外部数据源中导入数据,同时还可以进行更多的高级设置,如数据筛选、数据转换等。
二、使用数据连接来导入数据除了导入向导,用户还可以使用Excel的数据连接功能来实现数据导入。
数据连接是一种在Excel中建立与外部数据源的连接,以实时获取数据的方法。
用户可以根据以下步骤来使用数据连接:1. 打开Excel,并选择“数据”选项卡。
2. 点击“从其他源”按钮,在弹出的菜单中选择“从数据连接中获取数据”。
3. 在弹出的“选择数据源”对话框中,选择适合的数据连接类型,如ODBC、OLE DB等。
4. 根据具体的数据连接类型,在相应的选项卡中设置数据连接的参数,如连接字符串、用户名、密码等。
5. 点击“确定”按钮,Excel将建立与外部数据源的连接并导入数据。
通过数据连接,用户可以实时获取外部数据源的最新数据,并在Excel中进行进一步的分析和处理。
同时,用户还可以通过刷新数据来更新导入的数据。
三、使用Power Query进行高级数据导入Power Query是Excel提供的一款强大的数据导入和转换工具,用户可以使用它来更加灵活地导入和处理外部数据。
C++读取写⼊EXCEL程序对EXCEL做写⼊操作时值得注意到是数据量多⼤需要分多个⽂件写⼊,因为EXCEL的最⼤⾏数为65535⾏。
//读取EXCEL ,CListCtrl list// sFile :⽂件位置//sSheetName : 操作⼯作表名称//items : 读取内容赋值数组(根据需要)//nNum : 数组有效赋值⾏数(根据需要)bool ReadFromExcel(CString sFile, CString sSheetName, Item **items, int *nNum){g_sys_log->writeUDPSysLog("ReadFromExcel",0);CDatabase database;CString sSql;//定义EXCEL读取的字段CString AllCapital, Ask1, AskVol1, Bid1, BidVol1, FreeCapital, IndustryCode;CString Is100, IsSuspension, LastPrice, Name, NO, OrderPrice, OrderStatus;CString OrderVol,Positions,PriceYesterday, Reserved1, Reserved2, Reserved3;CString Reserved4, Reserved5, Reserved6, Reserved7, Reserved8, Reserved9, Reserved10;CString sDriver;CString sDsn;Item itemOnce;int i = 0;//CString sSheetName = "Sheet1";//CString sFile = "测试读取EXCEL.xls";//检查时否安装有Excel驱动 “Microsoft Excel Driver (*.xls)”sDriver = GetExcelDriver();if(sDriver.IsEmpty()){//没有发现Excel驱动AfxMessageBox("没有安装Excel驱动");return false;}//创建进⾏存取的字符串sDsn.Format("ODBC;DRIVER={%s};DSN='''';DBQ=%s", sDriver, sFile);try{//打开数据库database.Open(NULL, false, false, sDsn);CRecordset recset(&database);//设置读取的查询语句sSql.Format("SELECT * from [%s$]", sSheetName);//执⾏查询语句recset.Open(CRecordset::forwardOnly, sSql, CRecordset::readOnly);//得到查询结果while(!recset.IsEOF()){//读取Excel内部数值recset.GetFieldValue("AllCapital", itemOnce.AllCapital);if(itemOnce.AllCapital.GetLength() < 1)break;recset.GetFieldValue("Ask1", itemOnce.Ask1);recset.GetFieldValue("AskVol1", itemOnce.AskVol1);recset.GetFieldValue("Bid1", itemOnce.Bid1);recset.GetFieldValue("BidVol1", itemOnce.BidVol1);recset.GetFieldValue("FreeCapital", itemOnce.FreeCapital);recset.GetFieldValue("IndustryCode", itemOnce.IndustryCode);// recset.GetFieldValue("Is100", itemOnce.Is100);//recset.GetFieldValue("IsSuspension", itemOnce.IsSuspension);// recset.GetFieldValue("LastPrice", stPrice);recset.GetFieldValue("Name", );recset.GetFieldValue("NO", itemOnce.NO);recset.GetFieldValue("OrderPrice", itemOnce.OrderPrice);recset.GetFieldValue("OrderStatus", itemOnce.OrderStatus);recset.GetFieldValue("OrderVol", itemOnce.OrderVol);recset.GetFieldValue("Positions", itemOnce.Positions);recset.GetFieldValue("PriceYesterday", itemOnce.PriceYesterday); recset.GetFieldValue("Reserved1", itemOnce.Reserved1);recset.GetFieldValue("Reserved2", itemOnce.Reserved2);recset.GetFieldValue("Reserved3", itemOnce.Reserved3);recset.GetFieldValue("Reserved4", itemOnce.Reserved4);recset.GetFieldValue("Reserved5", itemOnce.Reserved5);recset.GetFieldValue("Reserved6", itemOnce.Reserved6);recset.GetFieldValue("Reserved7", itemOnce.Reserved7);recset.GetFieldValue("Reserved8", itemOnce.Reserved8);recset.GetFieldValue("Reserved9", itemOnce.Reserved9);recset.GetFieldValue("Reserved10", itemOnce.Reserved10);//加⼊到列表中items[i]->AllCapital = itemOnce.AllCapital;items[i]->Ask1= itemOnce.Ask1;items[i]->AskVol1 = itemOnce.AskVol1;items[i]->Bid1 = itemOnce.Bid1;items[i]->BidVol1 = itemOnce.BidVol1;items[i]->FreeCapital = itemOnce.FreeCapital;items[i]->IndustryCode = itemOnce.IndustryCode;items[i]->Is100 = itemOnce.Is100;items[i]->IsSuspension = itemOnce.IsSuspension;items[i]->LastPrice = stPrice;items[i]->Name = ;items[i]->NO = itemOnce.NO;items[i]->OrderPrice = itemOnce.OrderPrice;items[i]->OrderStatus = itemOnce.OrderStatus;items[i]->OrderVol = itemOnce.OrderVol;items[i]->Positions = itemOnce.Positions;items[i]->PriceYesterday = itemOnce.PriceYesterday;items[i]->Reserved1 = itemOnce.Reserved1;items[i]->Reserved2 = itemOnce.Reserved2;items[i]->Reserved3 = itemOnce.Reserved3;items[i]->Reserved4 = itemOnce.Reserved4;items[i]->Reserved5 = itemOnce.Reserved5;items[i]->Reserved6 = itemOnce.Reserved6;items[i]->Reserved7 = itemOnce.Reserved7;items[i]->Reserved8 = itemOnce.Reserved8;items[i]->Reserved9 = itemOnce.Reserved9;items[i]->Reserved10 = itemOnce.Reserved10;i ++;//移动下⼀⾏recset.MoveNext();}*nNum = i;//关闭数据库database.Close();}catch(CDBException e){AfxMessageBox("数据库错误:" + e.m_strError);return false;}return true;}///////////////////////////////////////////////////////华丽分割线//////////////////////////////////////////////////////////////////////创建并写⼊Excel⽂件void WriteToExcel(){g_sys_log->writeUDPSysLog("WriteToExcel",0);CDatabase database;CString sDriver = "MICROSOFT EXCEL DRIVER (*.XLS)"; // Excel安装驱动CString sExcelFile = "c:\\demo.xls"; // 要建⽴的Excel⽂件,可以放在函数参中CString sSql;TRY{// 创建进⾏存取的字符串sSql.Format("DRIVER={%s};DSN='''';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_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 文件读写脚本说明1.单元格属性设置。
Sheets表示一个表单,sheets[0]表示第一个表单。
表单是从0开始的,不是从1开始。
插入数据:2.字体属性设置。
字体颜色和网页上的字体颜色是一致的,可以用$加十六进制的颜色代码来表示。
Cell 单元格Sheets[0]表示第一个表单,cell[0,0]表示单元格A1。
Col表示列,row表示行,都是从0开始。
xls.sheets[0].Cell[col,row].FontName:=’宋体’字体名称括起来。
xls.sheets[0].Cell[col,row].FontColor:=ColorToWebColor()字体颜色,和网页上的字体颜色是一致的,可以用$加十六进制的颜色代码来表示,例如: ColorToWebColor(clblack)黑色ColorToWebColor($8515C7)紫色。
RGB(红绿蓝)调色。
xls.sheets[0].Cell[col,row].FontSize字体大小,对应罗马数字。
例如:10,16xls.sheets[0].Cell[col,row].FontStyle字体风格,共三种,xfsStrikeOutxfsItalic, xfsBold,字体风格:xls.sheets[0].Cell[col,row].FontStyle := 0;0表示普通风格。
xls.sheets[0].Cell[col,row].FontStyle := 1; 1表示加粗。
xls.sheets[0].Cell[col,row].FontStyle := 2; 2表示斜体。
xls.sheets[0].Cell[col,row].FontStyle := 3; 3表示删除线。
xls.sheets[0].Cell[col,row].FontStyle := 4; 4表示加粗加斜体。
xls.sheets[0].Cell[col,row].FontStyle := 5; 5表示加粗加删除线。
Excel数据导入外部数据库连接和查询外部数据源在Excel中,我们可以通过外部数据库连接和查询外部数据源来实现数据的导入和使用。
这一功能可以帮助我们更方便地处理和分析大量的数据,提高工作效率。
本文将介绍如何使用Excel进行数据导入和外部数据源查询的方法和步骤。
一、外部数据库连接1. 打开Excel并创建一个新的工作簿。
2. 在工作簿的“数据”选项卡中,点击“从其他源”。
3. 在弹出的菜单中选择“从数据库”选项。
4. 在“数据源向导”中,选择一个数据库驱动程序,如Microsoft ODBC驱动程序。
5. 点击“下一步”并填写数据库服务器的详细信息,如服务器名称、数据库名称、用户名和密码等。
6. 完成连接设置后,可以选择“测试连接”来确保连接是否成功。
7. 点击“下一步”并选择在Excel中进行数据导入的方式,如选择表格、视图或者SQL查询。
8. 点击“下一步”并完成导入设置后,点击“完成”即可将数据导入到Excel中。
二、查询外部数据源1. 打开Excel并创建一个新的工作簿。
2. 在工作簿的“数据”选项卡中,点击“从其他源”。
3. 在弹出的菜单中选择“从数据连接向导”。
4. 在“数据连接向导”中,选择一个数据源类型,如数据库、文本文件或者Web。
5. 根据选择的数据源类型,填写相应的详细信息。
6. 点击“下一步”并选择在Excel中进行数据导入的方式,如选择表格、视图或者SQL查询。
7. 根据需要设置数据过滤和排序等选项。
8. 点击“下一步”并完成查询设置后,点击“完成”即可将数据查询结果导入到Excel中。
需要注意的是,使用外部数据库连接和查询外部数据源功能前,我们需要确保已经安装了相应的数据库驱动程序或者具有访问外部数据源的权限。
通过Excel的数据导入和外部数据源查询,我们可以更灵活地利用各种数据资源,并直接在Excel中进行数据的处理和分析。
无论是进行统计分析、制作图表还是生成报告,Excel的这一功能都能满足我们的需求,提高工作效率。
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==vc读写excel范例篇一:VC++操作EXCEL表格,附带两个小例子C++读取Excel的XLS文件的方法有很多,但是也许就是因为方法太多,大家在选择的时候会很疑惑。
由于前两天要做导表工具,比较了常用的方法,总结一下写个短文,1. OLE的方式这个大约是最常用的方式,这个方式其实启动了一个EXCEL的进程在背后读写EXCEL文件,这个方式的最大好处是什么事情都能做。
包括设置EXCEL的格式,增加删除Sheet,读写单元格,等等。
功能几乎是最全的,而且使用起来也不是特别的难。
其基本方法都是使用导出的.h文件进行OLE操作,但是由于OLE的接口说明文档不多,想非常完美的使用她们也不是太容易,好在例子也很多。
网上普遍认为OLE速度慢,EXCEL的OLE读写方式也基本一样。
但是读取速度可以改进,如果在读取的加载整个Sheet的Range的全部数据,而不是一个个单元格读取,那么速度还是相对不错。
想想原理也很简单,整体读取减少了OLE的交互次数。
OLE的写入方式一般只能几个进行比较方便,所以速度可能要快很多。
我自己的亲身体会是,一个EXCEL文件,100多列的字段,如果采用一个个单元格的读取方式,1s大约3条左右的记录,如果整体读取,速度可以提高几十倍。
OLE读写EXCEL方式功能很强大,读取速度还可以,但写入速度不高,当然这个方式不可能移植的,而且你必须安装了EXCEL。
2.Basic EXCEL 方式这是CodeProject上的一个推荐开源工程了,/KB/office/BasicExcel.aspx作者是基于EXCEL的文件格式进行的处理。
但是为什么叫Basic EXCEL呢。
他不支持很多东西,公式,文件格式,表格合并等(有人说中文支持也不好),所以可以认为他只支持最基本的EXCEL表格,我自己的尝试是如果这个EXCEL文件有其他元素(公式,格式等),使用Basic EXCEL读取会失败。
excel odbc方法
在Excel中使用ODBC(Open Database Connectivity)方法可
以让你连接到外部数据库,并从中导入数据。
以下是使用ODBC方法
在Excel中连接外部数据库的步骤:
1. 打开Excel并选择“数据”选项卡。
在“获取外部数据”组中,选择“从其他来源”下的“从ODBC”选项。
2. 选择“ODBC 数据源”对话框中的“添加”按钮,然后选择
你要连接的数据库类型,比如SQL Server、Access等。
点击“完成”后,输入数据源名称和描述,然后点击“下一步”。
3. 在“选择数据源”对话框中,选择你要连接的数据库,然后
点击“下一步”。
4. 输入数据库登录信息,比如用户名和密码,然后点击“下一步”。
5. 在“保存数据源”对话框中,可以选择是否将数据源文件保
存在指定位置,然后点击“完成”。
6. 返回Excel中的“导入数据”对话框,选择“ODBC 数据源
名称”,然后点击“确定”。
7. 在“导入数据”对话框中,选择数据源中的表或视图,然后
点击“确定”。
这样,你就可以在Excel中使用ODBC方法连接到外部数据库,
并导入数据了。
值得注意的是,使用ODBC连接需要确保你有权限访
问目标数据库,并且已经正确安装了相应的ODBC驱动程序。
另外,
连接过程中需要输入正确的数据库登录信息,以确保连接顺利完成。
希望这些步骤能够帮助你成功使用ODBC方法在Excel中连接外部数
据库。
excel odbc方法-回复Excel ODBC 方法是一种非常常用且强大的功能,它能够让我们轻松地从Excel中读取和写入数据到外部数据源。
本文将一步一步地回答有关Excel ODBC方法的问题,帮助读者理解其使用方法和优势。
第一步,我们需要先了解什么是ODBC。
ODBC(Open Database Connectivity,开放数据库连接)是一种标准接口,用于连接各种数据库和应用程序。
它提供了一种统一的方式来处理不同类型的数据库以及在它们之间传输数据的能力。
Excel ODBC方法正是基于这个标准接口,使得Excel能够方便地连接和操作各种数据库。
接下来,我们来看看如何使用Excel ODBC方法来在Excel中读取数据。
首先,我们需要在Excel中打开一个新的工作簿。
然后,在Excel菜单栏中选择“数据”选项卡,在“获取外部数据”区域点击“从其他源”按钮,并选择“从数据库”选项。
在弹出的对话框中,我们可以选择ODBC 数据源。
点击“查找”按钮,选择我们想要连接的数据库。
接着我们需要输入数据库登录信息,包括用户名和密码。
点击“下一步”按钮,选择我们想要导入数据的表格,并点击“完成”。
这样,我们就成功地从数据库中导入数据到Excel中了。
当我们需要在Excel中写入数据到数据库时,Excel ODBC方法同样很有用。
首先,我们需要确保我们有权限写入数据库。
然后,按照上面提到的步骤,连接到数据库。
接下来,在Excel的工作表中选择我们要写入数据的单元格,并输入相应的数据。
最后,点击Excel菜单栏中的“数据”选项卡,在“获取外部数据”区域点击“写入数据”的按钮,选择我们要写入数据的目标表格,并点击“完成”。
这样,我们就成功地将数据从Excel 写入到数据库中了。
Excel ODBC方法的优势在于它提供了一个简单而强大的方式来连接和操作不同类型的数据库。
它使得我们能够轻松地将Excel与各种外部数据源集成在一起,实现数据的导入、导出、读取和写入。
想要通过ODBC直接读、写Excel表格文件,首先,应确保ODBC中已安装有Excel表格文件的驱动"MICROSOFT EXCEL DRIVER (*.XLS)"。
然后,可根据下面步骤进行:1. 在StdAfx.h文件中加入:include <afxdb.h> include <odbcinst.h> 2. 通过ODBC直接创建Excel文件(暂定文件名:Demo.xls) //创建并写入Excel文件void CRWExcel::WriteToExcel() { CDatabase database; CStringsDriver = "MICROSOFT EXCEL DRIVER (*.XLS)"; // Excel安装驱动CStringsExcelFile = "c:\\demo.xls"; // 要建立的Excel文件CStringsSql; TRY { // 创建进行存取的字符串sSql.Format("DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_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) { Excel学习教程Excel介绍Excel教程Excel 表格Excel函数Excel图表TRACE1("Excel驱动没有安装: %s",sDriver); } END_CATCH_ALL; } 3. 通过ODBC直接读取Excel文件(暂定文件名:Demo.xls) // 读取Excel文件void CRWExcel::ReadFromExcel() { CDatabase database; CStringsSql; CString sItem1, sItem2; CStringsDriver; CStringsDsn; CStringsFile = "Demo.xls"; // 将被读取的Excel文件名// 检索是否安装有Excel驱动"Microsoft Excel Driver (*.xls)" sDriver = GetExcelDriver(); if (sDriver.IsEmpty()) { // 没有发现Excel驱动AfxMessageBox("没有安装Excel驱动!"); return; } // 创建进行存取的字符串sDsn.Format("ODBC;DRIVER={%s};DSN='';DBQ=%s", sDriver, sFile); TRY { // 打开数据库(既Excel文件) database.Open(NULL, false, false, sDsn); CRecordsetrecset(&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; } // 获取ODBC中Excel驱动CStringCRWExcel::GetExcelDriver() { char szBuf[2001]; WORD cbBufMax = 2000; WORD cbBufOut; char *pszBuf = szBuf; CStringsDriver; // 获取已安装驱动的名称(涵数在odbcinst.h里) if (!SQLGetInstalledDrivers(szBuf, cbBufMax, &cbBufOut)) return ""; // 检索已安装的驱动是否有Excel... do { if (strstr(pszBuf, "Excel") != 0) { //发现! sDriver = CString(pszBuf); break; } pszBuf = strchr(pszBuf, '\0') + 1; } while (pszBuf[1] != '\0'); return sDriver; }。