excel单元格调用mysql数据_Excel中如何调用SQL数据
通过参阅Excel帮助文档,我们可以发现一个很有用的外部函数SQL.REQUEST;http://office.microsoft.com/zh-cn/excel/HP052092672052.aspx?pid=CH062528302052(关于外部函数SQL.REQUEST的资料)
但是这个函数Excel不能直接调用,需要加载两个文件,XLODBC.XLA与XLODBC32.DLL。从Office2003的安装光盘找到XLODBC.XLA与XLODBC32.DLL两个文件复制到C:\Documents and Settings\Administrator\Application Data\Microsoft\AddIns文件夹中,(见图1),然后进入Excel文件中点工具菜单-加载宏-浏览-点击刚刚复制的文件-确定(宏安全等级为中)。(图2,3)另外,要注意的是要配置数据库,我最初没有配置好数据库,导致得不到想要的结果!在控制面板里面的数据源里面设置好你的系统DNS;(不明白的话,自己可以去查阅一些文档资料,或者看我的截图吧!)(图4)
现在外部环境已经构建好了,我们来看看SQL数据库
SQL服务器ip=192.168.1.1(这里加上装载自己数据库计算机的ip)(刚才配置数据源的IP)
用户名=sa
密码=1(这里加上自己数据库的密码)
数据库名字=test,(这里加上自己数据库的名字)
test.dbo.t_sal=数据库test中的一个表的名字(我查询的是t_sal表)
t_sal.salary=数据库test中表t_sal 的一个字段,即工资额(这个是我们要查询后返回的字段)
t_sal.id=数据库test中表t_sal的一个字段,即编码(我们要查询的就是这个字段,如这个是工号,我想查工号为2001的人工资,名字等资料)(图5)
假如我们在Excel单元格A3中输入编号要在c3得到工资,即在c3内输入如下公式:=SQL.REQUEST("DSN=192.168.1.1;UID=saWD=1;Database=test",,2,"SELECT t_sal.salary FROM test.dbo.t_sal
WHERE t_sal.id='"&A3&"'",FALSE)
假如我们在Excel单元格A3中输入编号要在b3得到姓名,即在b3内输入如下公式:=SQL.REQUEST("DSN=192.168.1.1;UID=saWD=1;Database=test",,2,"SELECT t_sal.name FROM test.dbo.t_sal
WHERE t_sal.id='"&A3&"'",FALSE)
……
……
依此类推,修改你要查询的字段,(图6)
ERPSERVER供应商信息调用示例:拷贝设置好ODBC,添加ERPSERVER DSN
=SQL.REQUEST("DSN=ERPSERVER;UID=jserp;PWD=jserp;database=dberp3",,2,
"select gys_mc from gys where gys_gysid='"&B4&"'")
全文完……
图1:
图2:
图3:
图4:
图5:
图6:
图7:
本主题中的部分内容可能不适用于某些语言。
与外部数据源连接,从工作表运行查询,然后 SQL.REQUEST 将查询结果以数组的形式返回,而无需进行宏编程。如果没有此函数,则必须安装 Microsoft Excel ODBC 加载项程序(加载项:为 Microsoft Office 提供自定义命令或自定义功能的补充程序。) (XLODBC.XLA)。 您可从 Microsoft Office 网站安装加载项。
语法
SQL.REQUEST(connection_string,output_ref,driver_prompt,query_text,col_names_logical)
Connection_string 提供信息,如数据源名称、用户 ID 和密码等。这些信息对于连接数据源的驱动程序是必需的,同时它们必须满足驱动程序的格式要求。下表给出用于 3 个不同驱动程序的 3 个连接字符串的示例。
驱动程序
连接字符串
dBASE
DSN=NWind;PWD=test
SQL Server
DSN=MyServer;UID=dbayer; PWD=123;Database=Pubs
ORACLE
DNS=My Oracle Data Source;DBQ=MYSER VER;UID=JohnS;PWD=Sesame
在试图连接到数据源之前,必须定义在 connection_string 中使用的数据源名称 (DSN)。
可以数组或字符串的形式输入 connection_string。如果 connection_string 超过 250 个字符,就必须以数组的形式输入。
如果函数 SQL.REQUEST 不能用 connection_string 访问数据源,则返回错误值 #N/A。
Output_ref 对用于存放完整的连接字符串的单元格的引用。如果在工作表中输入 SQL.REQUEST 函数,则可以忽略 output_ref。
当需要函数 SQL.REQUEST 返回完整的连接字符串时,可以使用 output_ref(此种情况下,必须在宏表中输入 SQL.REQUEST 函数)。
如果省略 output_ref,函数 SQL.REQUEST 不能返回完整的连接字符串。
Driver_prompt 指定驱动程序对话框何时显示以及何种选项可用。该参数使用下表中所描述的数字之一。如果省略 driver_prompt,SQL.REQUEST 函数使用 2 作为默认值。
Driver_prompt
说明
1
一直显示驱动程序对话框。
2
只有在连接字符串和数据源说明所提供的信息不足以完成连接时,才显示驱动程序对话框。所有对话框选项都可用。
3
只有在连接字符串和数据源说明所提供的信息不足以完成连接时,才显示驱动程序对话框。如果未指明对话框选项是必需的,这些选项变灰,不能使用。
4
不显示对话框。如果连接不成功,则返回错误值。
如果 SQL.REQUEST 函数不能在指定数据源中执行 query_text,则返回错误值 #N/A。
可将引用连接到 query_text 上来更新查询。在下面的例子中,每当 $A$3 更改时,SQL.REQUEST 函数都使用新的数值来更新查询。
"SELECT Name FROM Customers WHERE Balance > "&$A$3&"".
Microsoft Excel 将字符串长度限制在 255 个字符内。如果 query_text 超过此长度,请在垂直单元格区域中输入查询并将整个区域作为 query_text。所有单元格的值连接在一起形成完整的 SQL 语句。
Column_names_logical 指示是否将列名作为结果的第一行返回。如果要将列名作为结果的第一行返回,请将该参数设置为 TRUE。如果不需要将列名返回,则设置为 FALSE。如果省略 column_names_logical,则 SQL.REQUEST 函数不返回列名。
返回值
如果此函数完成了它的所有操作,则返回查询结果数组或受查询影响的行数。
如果 SQL.REQUEST 函数不能使用 connection_string 访问数据源,则返回错误值 #N/A。
说明
SQL.REQUEST 函数可以数组的形式输入。如果以数组形式输入 SQL.REQUEST 函数,该函数将返回一个恰好填充选定区域的数组。
如果单元格区域大于结果集,则 SQL.REQUEST 函数将向返回的数组添加空白单元格,直至增加到所需要的大小。
如果结果集大于以数组形式输入的区域,则 SQL.REQUEST 函数返回整个数组。
SQL.REQUEST 函数的参数与 Visual Basic for Application 中 SQLRequest 函数的参数顺序不同。
示例
假设需要对名为 DBASE4 的 dBASE 数据库进行查询。在单元格中输入下列公式时,将会返回查询结果数组,其中第一行为列名:
SQL.REQUEST("DSN=NWind;DBQ=c:\msquery;FIL=dBASE4", c15, 2,
"Select Custmr_ID, Due_Date from Orders WHERE order_Amt>100", TRUE)
在DELPHI中怎样把SQL SERVER查询出来的数据导入EXCEL,WORD,TXT文件
用DexExpress Grid,即将此Grid连到数据上,然后再通过它的导出功能来另存为Excel,Html,Text,XMl
excel单元格调用mysql数据_Excel中如何调用SQL数据相关推荐
- 合并单元格后打字换行_excel中合并了单元格以后往里面打字如果打两行字,怎么换行...
点击查看excel中合并了单元格以后往里面打字如果打两行字,怎么换行具体信息 答:1.演示使用的软件为Excel电子表格,软件版本为office家庭和学生版2016. 2.为了演示如何在合并的单元格中 ...
- python改变excel单元格字体和颜色_Python中openpyxl怎样改变字体和颜色
在excel中为了区分不同数据内容,需要改变字体和单元格背景颜色.为了给学习编程的小伙伴找到既实用又有趣而且简单的学习方法,经过小编的不断找寻,接下来就让我们一起看看在openpyxl中如何填充背景和 ...
- c++调用mysql存储过程_C++中ADO调用MySQL存储过程失败,诡异的语法异常,求解中,附源码...
C++中ADO调用mysql存储过程失败,诡异的语法错误,求解中,附源码 不管怎么调整,死活都出现下面的错误 C++ADO代码我实在找不到什么错误了,难道是MySQL有什么问题,或者有其他需要注意的地 ...
- 为何excel中数据无法计算机,excel表格内数据为何无法计算机-为什么EXCEL单元格内的数字不能运算...
我的电脑为什么不能把一个excel表中数据导入另一个... 在Excel中打不上去可能是由于数出了位数限制,对应及解决方下: 1.系统默认单元格中输入数字格式为"常规",能完全显示 ...
- excel单元格内容拆分_excel软件应用:如何妙用Word拆分单元格数据
编按:打仗亲兄弟,上阵父子兵!Word和Excel就是一对好兄弟,虽然各有分工,但有时也能彼此帮忙.Excel中的莫名其妙问题找Word帮忙解决,往往有效.譬如从平台中导出的数据,先使用Word做一次 ...
- matlab中设置数据长度,excel表格长宽设置/如何检查excel单元格内数字长度
EXCEL用函数提取不同字符串长度的特定数据? 直接输入公式"=left(right(a1,6),2)" 关于此公式中用到的"Left"和"right ...
- excel单元格删除空格_在Excel数据输入单元格中防止空格
excel单元格删除空格 In Excel, you can use data validation to control (to some extent!) what users can enter ...
- 为何excel中数据无法计算机,电脑excel表格数据改不了-Excel单元格里面的数字改不动怎么办...
如何让excel表格中的数据不允许修改 不能修改excel表格中的数据的问题 为什么在EXCEL表格中不能更改数据 EXCEL软件本身出现了一些漏洞,解决办法: 1.单击"office&qu ...
- 选择邻近区域时: 代码操作与实际EXCEL键盘操作的区别 Currentregion与CTRL+A的区别, 又存在于,比如第一行有数据(合并单元格), 第二行为空, 第三行往下有数据, 第一行选中其中
选择邻近区域时: 代码操作与实际EXCEL键盘操作的区别 Currentregion与CTRL+A的区别, 又存在于,比如第一行有数据(合并单元格), 第二行为空, 第三行往下有数据, 第一行选中其中 ...
最新文章
- 自定义本地Maven 仓库 配置
- java回文数算法for_【Java】【每日算法/刷穿 LeetCode】9. 回文数(简单)
- win7 安装好redis 如何安装扩展
- ASP.NET CORE 之 在IIS上部署MVC项目
- 怎么给域账号映射服务器,如何给每个域用户映射网络驱动器?
- SpringBoot文件上传大小设置(yml中配置)
- 仿网易云音乐移动端html模板,使用jQuery仿制网易云音乐移动端
- Robocode简介
- AutoJs学习-实现极乐净土
- linux根据文件内容查找文件名,linux在当前目录下根据文件名查找文件
- No Assembler service found - please make sure that the right jars are in your classpath
- Flutter 3更新详解
- 【MobaXterm】设置 黑夜模式和白天模式
- Linux应用基础——串口应用编程
- 【Python】制作圆角图像的两种方案对比
- html 中按钮控件变为透明,css如何实现按钮透明
- vue3组件之间通信(三)——爷孙组件传递属性和方法
- uboot----getenv_IPaddr代码解析
- PHP对接支付宝当面付详细教程
- 怎么用matlab对图片缩小,使用Matlab实现对图片的缩放