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

合集下载

Excel数据连接

Excel数据连接

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文件的几种方法

Java读取Excel文件的几种方法

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的高级技巧,以帮助用户更好地使用外部数据源进行数据导入。

一、使用导入向导导入数据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

C++读取写入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 文件读写脚本说明

Excel 文件读写脚本说明

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表示加粗加删除线。

免费木马知识

免费木马知识
运行以后把电脑里拨号密码都偷出来
找到运行程序的路径.!然后关闭选择的程序!
只要按一下按钮直接把所有运行窗口的密码全部变成真正的符号
网络资源管理器及源代码(1.0)
asylum_014_fe木马(含源程序)
DOS操作系统源代码
Dotpot Port Scanner 0.92
87 记录键盘,并且到一定时候发送到指定的Email里 键盘记录并发送到指定的Email
简单的说是个远程控制程序 一个远程控制程序
经典加解密源码
可以控制正在运行窗口,改变窗口里面的内容...不可思议
垃圾制造者在任何文件上添加字节
另一个可以在你的计算机上开FTP服务器的木马源代码
36 架构反弹端口远程控制例程
37 进程门神V1.0带源码
38 经典远程控制木马RemoteXP代码
39 经典远程控制木马Way2.4代码
40 经典远控木马NetBus代码
41 经典远控木马小马哥代码
42 局域网扫描、远程启动源代码
43 两款小插件的源码 FlatStyle和LBButton
木马的扫描
骗取Novell网密码的源代码
拖动程序内的图标得到窗口的handle,class,text,parent,颜色,windo
完整的特洛伊木马 PRIORITY 源代码
完整的特洛伊木马 Serve_Me 源代码
完整的下载程序
完整的子网扫描程序本机和远程机器的端口扫瞄
100 网路IP小工具,包括扫瞄,Ping,多线Ping
直接通过ODBC读、写Excel表格文件示例源码(1.0)
Word2000&XP中内部COM插件的编程实现(源码)(1.0)

Excel数据导入外部数据库连接和查询外部数据源

Excel数据导入外部数据库连接和查询外部数据源

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的这一功能都能满足我们的需求,提高工作效率。

【推荐】vc读写excel范例-word范文模板 (23页)

【推荐】vc读写excel范例-word范文模板 (23页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为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方法

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 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与各种外部数据源集成在一起,实现数据的导入、导出、读取和写入。

在VC++中实现Excel数据的导出/导入

在VC++中实现Excel数据的导出/导入

在VC++中实现Excel数据的导出/导入作者:郭小梅来源:《电脑知识与技术·学术交流》2008年第30期摘要:使用VC++ MFC的ODBC类,将Excel文件当作一般的数据库表格,利用ODBC 技术像访问数据库一样去读/写Excel文件。

该文结合应用实例讨论了在VC++程序中导出/导入Excel数据的方法。

关键词:VC++;ODBC;数据库;Excel中图分类号:TP316文献标识码:A文章编号:1009-3044(2008)30-0726-03The Realization of Using Excel File as Input or Output Data in VC++GUO Xiao-mei(Nanjing Xiaozhuang University,Department of Computer Science,Nanjing 211171,China)Abstract:This document introduce the method of how to use data in excel file as input or output data in VC++ program. The method solve the problem of how to use the excel file as database table, it is realizated in OBDC class in VC++ MFC.Finally, a real example has been given.Key words:VC++; ODBC; database; Excel1 引言Visual C++是Microsoft公司开发的可视化编程工具,它支持面向对象的编程技术,支持组件共享,提供了多种数据库访问技术,用其开发出来的应用程序与Windows操作系统结合紧密,代码执行效率高,一直以来是人们开发应用程序的首选工具之一。

visual basic读取excel的方法

visual basic读取excel的方法

在Visual Basic () 中,你可以使用Microsoft Office的Interop库来读取Excel文件。

以下是一个简单的例子,演示如何使用这种方法读取Excel文件中的数据。

首先,你需要添加对Microsoft Excel对象库的引用。

在Visual Studio中,可以通过以下步骤进行:1. 在解决方案资源管理器中,右键单击项目,然后选择"添加引用"。

2. 在"COM"选项卡下,找到并选择"Microsoft Excel 16.0 Object Library"(或者与你的Excel版本相对应的)。

3. 点击"确定"来添加引用。

然后,你可以使用以下代码来读取Excel文件:````Imports Microsoft.Office.InteropSub ReadExcelFile()Dim excelApp As New Excel.ApplicationDim workbooks As Excel.Workbooks = excelApp.WorkbooksDim workbook As Excel.Workbook =workbooks.Open("C:\path\to\your\file.xlsx")Dim worksheet As Excel.Worksheet = workbook.Worksheets("Sheet1") ' 替换为你的工作表名称Dim range As Excel.Range = edRangeFor i As Integer = 1 To range.Rows.CountFor j As Integer = 1 To range.Columns.CountDim cellValue As Object = range.Cells(i, j).ValueConsole.WriteLine(cellValue) ' 输出单元格值Next jNext iworkbook.Close()excelApp.Quit()End Sub````请注意,这种方法需要在运行代码的计算机上安装有Excel。

vfp读取EXCEL文件数据

vfp读取EXCEL文件数据

vfp直接读取EXCEL文件vfp直接读取EXCEL文件的示例(转)。

M_File=GETFILE('xls','订单文件')IF M_File=""=MESSAGEBOX("请选择待导入的收订单文件!",0+48,"提示")RETURNELSEIF JUSTEXT(M_FILE)#"XLS" &&获得文件扩展名=MESSAGEBOX("您选择的不是EXCEL文档!",0+48,"提示")RETURNENDIFENDIFUSE 图书订单表ZAPmyexcel=createobject('excel.application') &&创建一个对象myexcel.visible=.f.&&不可见bookexcel=myexcel.workbooks.open(M_File) &&打开指定文件o_SheetName= &&获取当前激活工作表的名称UsedRange =bookexcel.worksheets(o_SheetName).UsedRange &&返回工作表中可使用的区域,UsedRange表的属性o_rows=UsedRange.rows.count &&汇总行o_cols=UsedRange.columns.count &&汇总列IF o_rows<=1=MESSAGEBOX("待导入数据行数太少,请检查!",0+16,"提示")ELSEFOR i=2 TO o_rowsm1=myexcel.cells(i,1).value &&书号m2=myexcel.cells(i,2).value &&书名m3=myexcel.cells(i,3).value &&出版社m4=myexcel.cells(i,4).value &&作者m5=myexcel.cells(i,5).value &&定价m6=myexcel.cells(i,6).value &&数量APPEND BLANKREPLACE 书号WITH m1,书名WITH m2,出版社WITH m3,作者WITH m4,定价WITH m5,数量WITH m6ENDFORENDIFmyexcel.workbooks.close &&关闭工作区myexcel.quit &&关闭excelbrow。

请问怎么在vba中建立一个odbc连接,使得可以在excel中直接查询出数据库中的表

请问怎么在vba中建立一个odbc连接,使得可以在excel中直接查询出数据库中的表

请问怎么在vba中建立一个odbc连接,使得可以在excel中直接查询出数据库中的表关于odbc连接我比较陌生,想问一下可不可以实现如题的要求。

数据库环境是Oracle的,假设我接入其中的一个环境的口令是(用户名/密码@环境):unarthur/mypassword@gbs0其中一个表的表名假设为emp我想在当前工作本的sheet1从[a1]开始显示以下sql语句查询出来的内容select * from emp where deptno=10;请问以上所有描述相关的vba代码怎么写?谢谢!一. 配置数据源/Blog/tiger12/archive/2005/01/19/66672.html将ORACLE数据库的数据倒入到EXCEL中的方法在当今信息化高速发展的时代,日常的工作中,用户经常遇到要将EXCEL文件中的数据和ORACLE数据库中的数据互倒的问题,实现对实时数据的操作,而可查阅到这方面的资料并不多。

若需将ORACLE信息系统中的数据倒出来,并在此基础上利用EXCEL对其进行分析整理,笔者在工作中利用ODBC将数据倒入到EXCEL文件中,对初学者来说,效果不错,在这里给大家作一所谓ODBC是Open Database Connectivity 的缩写,就是开放式数据库互连。

利用ODBC实现动态数据交换的前提条件很简单,只需先在本机安装微软OFFICE中的EXCEL,然后根据需要运下面就我工作中遇到的实际问题逐步介绍:1、首先配置ODBC数据源。

在控制面板中,选ODBC数据源,添加选安装ODBC FOR ORACLE。

在给定数据源名称和描述时,用户可自定义,用户名称和服务器则需根据在ORACLE 数据库如:数据源名称:EXAMPLE描述:EXAMPLE用户名称:SCOTT服务器:TIGER2、打开EXCLE,在数据菜单下,选获取外部数据源,新建数据库查询。

3、系统提示选择数据源,选择我们前面已设置好的数据源EXAMPLE,输入数据库密码。

实现读写xls的方法

实现读写xls的方法
for (int j = 1; j <= Rows.GetSize(); j++)
{
if(j == 1)
strContents = Rows.GetAt(j-1);
else
strContents = strContents + " --> " + Rows.GetAt(j-1);
SS. DeleteSheet(" TestSheet "); // 删除Excel中TextSheet表格
八、 获取Excel中总行数、总列数、当前行
int iCols = SS.GetTotalColumns(); // 总列数
int iRows = SS.GetTotalRows(); // 总行数
基本思路
基础实现方法同上篇文章《直接通过ODBC读、写Excel表格文件》相同,都是通过ODBC来把Excel表格文件当成数据库文件来进行读、写等操作,所以在Excel表格文件中写入的行头名必须是唯一的(不要重名,相当于数据库中的ID值)。本文中对Excel文件的操作都被封装进一个类CSpreadSheet中,通过它我们可以非常简便的实现各种Excel表格数据操作,并且可以对该类进行扩充来满足自己的需求。
CString str;
str.Format("表中总行数为: %d, ", iRows);
AfxMessageBox(str + " 查询行数大于Excel表中总行数,请重新输入!");
return;
}
// 读取指定行、列单元格数据
if(!SS.ReadCell(tempString, iColumn, iRow))

odbc用途

odbc用途

odbc用途ODBC(Open Database Connectivity)是一种用于数据库访问的标准接口。

它允许应用程序通过统一的方式访问不同的数据库管理系统(DBMS),而无需关心具体的数据库实现细节。

ODBC在数据库应用中具有广泛的用途,本文将从不同的角度介绍ODBC的应用。

ODBC可以用于实现数据库的连接和访问。

通过ODBC,应用程序可以与各种不同类型的数据库进行通信,包括关系型数据库(如Oracle、MySQL、SQL Server等)和非关系型数据库(如MongoDB、Redis等)。

ODBC提供了一套标准的API,使得应用程序可以通过统一的方式进行数据库连接、执行SQL语句、获取查询结果等操作。

这大大简化了应用程序的开发过程,提高了开发效率。

ODBC还可以用于实现数据的导入和导出。

很多时候,我们需要将数据从一个数据库导入到另一个数据库,或者将数据导出到文件中进行备份或分析。

通过ODBC,我们可以使用相同的接口和方法,轻松地实现数据的导入和导出。

无论是从一个数据库到另一个数据库,还是从数据库到Excel表格,ODBC都可以提供简单且高效的解决方案。

ODBC还可以用于实现数据库的远程访问。

在分布式系统中,数据库通常分布在不同的物理服务器上,而应用程序需要通过网络进行访问。

通过ODBC,应用程序可以使用统一的接口,通过网络远程访问数据库。

ODBC提供了一套标准的网络协议,使得数据传输更加安全可靠。

这使得应用程序能够方便地访问远程数据库,实现数据的共享和协作。

ODBC还可以用于实现数据库的跨平台移植。

不同的数据库管理系统通常有不同的API和语法,因此需要针对不同的数据库进行适配和修改。

而通过ODBC,我们可以将应用程序与特定的数据库解耦,使得应用程序可以在不同的操作系统和平台上运行,而无需修改源代码。

这样一来,我们可以更加灵活地选择数据库,降低了应用程序的维护成本。

ODBC还可以用于实现数据库的事务控制和并发处理。

EXCEL中使用外部数据源的方法

EXCEL中使用外部数据源的方法

EXCEL中使用外部数据源的方法在日常工作中,Excel作为一个强大的数据处理工具,往往需要从不同的数据源获取信息。

利用外部数据源,可以提高工作效率,降低人工错误率,帮助用户实现数据的动态更新和实时分析。

以下将详细探讨如何在Excel中使用外部数据源的方法。

连接到外部数据源Excel支持多种外部数据源连接,包括数据库、Web数据和文本文件。

通过这些连接,用户可以在Excel中轻松导入、处理和分析数据。

数据库连接通过ODBC(开放数据库连接)或OLEDB(对象链接和嵌入数据库)连接到外部数据库是非常常见的做法。

用户只需在Excel中选择“数据”选项卡,点击“获取数据”,选择“从数据库”,再选择所需的数据库类型(如SQLServer、Access等),然后输入连接信息,即可成功导入数据。

Web数据连接借助Excel的“从Web获取数据”功能,可以直接从网页中提取数据。

用户在“数据”选项卡中选择“获取数据”,再选择“从Web”,输入网页URL,Excel会自动分析网页内容,帮助用户选择需要的数据表格。

文本文件导入如果外部数据以CSV、TXT等文本格式存在,用户可以使用“从文本/CSV”选项进行导入。

选中合适的文本文件后,Excel提供导入向导,可以让用户选择分隔符、列格式等参数,确保数据能准确导入。

使用PowerQuery获取数据PowerQuery是Excel中一个极具强大功能的工具,能够轻松获取、转换和清洗外部数据。

它的界面友好,即使是非技术背景的用户也能快速上手。

数据转换与清洗PowerQuery允许用户对导入的数据进行各种操作,如删除不必要的列、修改数据类型、填补缺失值等。

在数据清洗完毕后,用户可以将处理好的数据加载到Excel工作表中,完成后续的分析。

定期刷新数据在PowerQuery中,可以设置定期刷新功能。

当外部数据源更新后,Excel也能随时获取最新数据,无需手动重复导入过程,极大节省了时间。

vc中EXCEL的读写操作

vc中EXCEL的读写操作

VC操作Excel1、Excel的层次结构:ApplicationWorkbooksWorkbook......WorksheetsWorksheet......RangeFontBorders.............2、插入类型库(1)、在一个已有的MFC工程按Ctrl + W 弹出ClassWizard对话框。

(2)、Add Class...\From a type Library... 在Office 目录中,找到你想使用的Excel类型库(Offce2000下,此目录在C:\Program Files\Microsoft Office\Office\EXCEL9.OLB;Offce2003下,此目录在C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE)。

选择EXCEL9.OLB或EXCEL.EXE;(3)、在弹出的对话框中选择要添加的类,具体选那些类要根据实际情况而定。

当然你也可以全选3、基本操作当你要选用Excel生成报表时,表的结构可能有固定的部分,这时做一个模板,这样可以减少编码的负担。

加载Excel模板的代码如下://(1)定义变量:下面的类型都是通过加入EXCEL类型库之后自动定义的C++类,你可以自由使用。

(_Application,Workbook……等)_Application ExcelApp; // 定义Excel应用程序Workbooks wbsBooks;_Workbook wbBook;Worksheets wssSheets;_Worksheet wsSheet;Range rngXls;FontXls font; // 字体BordersXls border; // 边框//(2)初始化Com,一般放在应用程序类的初始化函数中,并在结束时使用::CoUninitialize();释放COM库。

if (::CoInitialize( NULL ) == E_INVALIDARG){AfxMessageBox(_T("初始化Com失败!"));}//(3)创建Excel2000服务器(启动Excel)if ( !ExcelApp.CreateDispatch(_T("Excel.Application"), NULL)){AfxMessageBox(_T("创建Excel2000服务失败!"));::CoUninitialize();}ExcelApp.SetVisible(FALSE); // 隐藏//(4)打开模板CString strPath;strPath += "C:\\template.xlt"; // 模板的路径CFileFind filefind;if( !filefind.FindFile( strPath ) ){AfxMessageBox( "没有找到模版文档,请其查找" );CFileDialog dlg (TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"模版||*.xlt||",NULL );if (IDOK == dlg.DoModal()){strPath = dlg.GetPathName();}}//(5)操作strPath模板路径COleVariant vOptional( (long)DISP_E_PARAMNOTFOUND, VT_ERROR );try{wbsBooks.AttachDispatch(ExcelApp.GetWorkbooks(), TRUE);wbBook.AttachDispatch(wbsBooks.Add(COleVariant(strPath)), TRUE );wssSheets = wbBook.GetWorksheets();wsSheet = wssSheets.GetItem(_variant_t("Sheet1")); // Get Sheet1wsSheet.SetName( "Your Sheet" ); // 改名// 得到全部Cells,此时,rngXls 是cells的集合rngXls = wsSheetAcc.GetCells();}catch (CException e){AfxMessageBox( "" )}我们知道在Excel中每个单元格可以用A1,A2,C3的形式来表示。

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读取会失败。

OLE读写EXCEL方式功能比较弱,由于是直接根据文件格式操作,读写速度都不错,你也不需要按照EXCEL,另外这个方式是可以移植的,但是有一些成本,其代码比较晦涩难懂,而且没有注释,另外即使在Windows平台上,告警也很多。

C,C++读写Excel表格文件

C,C++读写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 = "CREA TE 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();}CA TCH_ALL(e){TRACE1("Excel驱动没有安装: %s",sDriver);}END_CA TCH_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.GetFieldV alue("Name ", sItem1);recset.GetFieldV alue("Age", sItem2);// 移到下一行recset.MoveNext();}// 关闭数据库database.Close();}CA TCH(CDBException, e){// 数据库操作产生异常时...AfxMessageBox("数据库错误: " + e->m_strError);}END_CA TCH;}// 获取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;}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

想要通过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; }。

相关文档
最新文档