这里介绍一种非常高效的方法。就是借助Excel插件SqlCel,这个插件在处理数据上面有很多可取之处,非常值得学习。
比如在Excel中有一个订单ID字段,这个字段总共有2千条记录,现在我们要查询这些订单对应的产品名称。
在Mysql数据库中有一张订单表里面存储了所有订单的详细信息。我们该怎样操作才能最快速地查到每个订单的产品名称呢?
多数人的做法应该是把Excel中的数据导入到Mysql中,然后写一个SQL语句匹配订单表,然后把匹配结果再导出来。这种做法也是可以的,只是非常不方便,单是数据的导入可能就会遇到不少麻烦。用SqlCel处理这个问题就简单了
插件安装之后需要连接到Mysql数据库,点击“数据库连接”下的Mysql,输入连接信息。如下:
B. 如何在Excel中获取其它数据库中的数据
vlookup函数,用法vlookup(需要对应数据,被对应区域,需要被对应区域的第几列,0)
回答人的补充
2010-08-20
12:25
看下图再理解理解吧
C. excel配合什么数据库
关键看你的格式是什么样的,如果还是使用XLS的话就是EXCEl文件,如果保存为HTM的话就是一个普通的网页
数据库是存放数据的仓库。它的存储空间很大,可以存放百万条、千万条、上亿条数据。但是数据库并不是随意地将数据进行存放,是有一定的规则的,否则查询的效率会很低。
D. Excel可以从()获取外部数据 A Access数据库 B Word文件 C 文本文件 D SQL Server数据库
多选题,答案为:A、C、D
E. 如何在EXCEL中自动读取ACCESS数据库中的信息
用access自动获取excel里的数据的方法就是通过代码的方式导入。
如果是手动导入比较清楚的话,这个实现起来不难,请参考下面的介绍来实现:
首先,新建一个工程,在工程中引用如下对象ADO对象(用于连接ACCESS数据库,可用其它方式),添加一个窗体(from1),在窗体上添加如下控件:
两个文本框,用来显示EXCEL文件路径和ACCESS路径;
四个扭钮,两个用来游览,另两个是导入和退出;
两个通用对话框控件,用来打开ACCESS和EXCEL文件,一个进度条控件,用来显示导入进程。
该实例的导入是将ACCESS数据库中表的字段名单独存放在另外一个表中,导入时按表中所存字段名的顺序进行导入,不是按EXCEL表的顺序导入,这样在实际中是很实用的.
因为好多时候EXCEL表中字段顺序和ACCESS中字段顺序有可能不是一致的.
代码如下:
Dim v
Option Explicit
Private Sub cmdLoad_Click()
Dim excel_app As Object
Dim excel_sheet As Object
If txtExcelFile.Text = "" Then
MsgBox "请选择EXCEL表"
Else
Dim new_value As String
Label2.Caption = "正在导入,请稍候..."
Screen.MousePointer = vbHourglass
DoEvents
'' Create the Excel application.
Set excel_app = CreateObject("Excel.Application")
'' Uncomment this line to make Excel visible.
excel_app.Visible = True
'' Open the Excel spreadsheet.
excel_app.Workbooks.open FileName:=txtExcelFile.Text
'' Check for later versions.
If Val(excel_app.Application.Version) >= 8 Then
Set excel_sheet = excel_app.ActiveSheet
Else
Set excel_sheet = excel_app
End If
Dim u ''求EXCEL表中记录的条数,以便控制进度条
u = 1
Do
If Trim$(excel_sheet.Cells(u, 1)) = "" Then Exit Do
u = u + 1
Loop
bar.Max = u - 1
strSQL = "select * from TestValues"
yourRecord.open strSQL, myConn, adOpenDynamic, adLockOptimistic ''打开记录集
Dim sql As String
sql = "select * from fields order by xue"
myRecord.open sql, myConn, adOpenDynamic, adLockBatchOptimistic ''打开字段记录集
myRecord.MoveFirst
'' Get data from the Excel spreadsheet and insert
'' it into the TestValues table.
Dim v ''导入记录,用了两层循环
v = 1
Do
If Trim$(excel_sheet.Cells(v, 1)) = "" Then Exit Do ''外层,
yourRecord.AddNew
Dim i
For i = 1 To myRecord.RecordCount
'' Get the next value.
new_value = Trim$(excel_sheet.Cells(v, i))
'' See if it''s blank.
''If Len(new_value) = 0 Then Exit Do
'' Insert the value into the database.
Dim bb As String
bb = myRecord("name")
yourRecord(bb) = new_value
myRecord.MoveNext
Next i
bar.Value = v
v = v + 1
myRecord.MoveFirst
Loop
yourRecord.Update
'' Comment the rest of the lines to keep
'' Excel running so you can see it.
'' Close the workbook without saving.
excel_app.ActiveWorkbook.Close False
'' Close Excel.
excel_app.Quit
Set excel_sheet = Nothing
Set excel_app = Nothing
myRecord.Close
yourRecord.Close
Set myRecord = Nothing
Set yourRecord = Nothing
Label2.Caption = "导入完毕"
Screen.MousePointer = vbDefault
MsgBox "共导入" & Format$(v - 1) & "条记录"
End If
End Sub
Private Sub Command1_Click()
Unload Me
End Sub
Private Sub Command2_Click(Index As Integer)
''寻找ACCESS数据库
CommonDialog1.Filter = "ACCESS 文件(*.mdb)|*.mdb"
CommonDialog1.CancelError = True
CommonDialog1.ShowOpen
txtAccessFile.Text = CommonDialog1.FileName
End Sub
Private Sub Command3_Click()
''寻找excel数据库
CommonDialog2.Filter = "excel 文件(*.xls)|*.xls"
CommonDialog2.CancelError = True
CommonDialog2.ShowOpen
txtExcelFile.Text = CommonDialog2.FileName
End Sub
Private Sub Form_Load()
Call Mole1.lianjie
txtAccessFile.Text = datapath
End Sub
模块(mole1)中的代码如下:
Public myConn As New ADODB.Connection ''定义连接字符串
Public myRecord As New ADODB.Recordset ''定义记录集(字段)
Public yourRecord As New ADODB.Recordset ''定义记录集(数据)
Public cntoad As Boolean ''是否正常连接
Public ml ''姓名字段所在列
Public strSQL ''查询字符串
Public MyDatabase As Database ''定义数据库名
Public MyTable As TableDef, MyField As Field ''定义表名和字段名
Public xuehao ''读取字段序号
Public goshiRecord As New ADODB.Recordset ''定义记录集(公式)
Public hxfyn As Boolean
Public hxfbds '' 公式或条件
Public an ''要统计的字段
Public islinshi As Boolean ''是否为临时公式
Public leiRecord As New ADODB.Recordset ''定义记录集(工资类别)
Public datapath As String ''数据库路径及名
Public table As String ''工资表名
Public lei As String '' 工资类别
Public Sub lianjie() ''打开数据库
On Error Resume Next
myConn.Close
Dim mySQL As String
''设定连接字符串
mySQL = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;"
mySQL = mySQL + "Data Source=" & datapath
myConn.ConnectionString = mySQL ''设定连接
myConn.open ''打开连接
myRecord.ActiveConnection = myConn ''设定RecordSeet的连接对象为Connection
myRecord.CursorLocation = adUseClient
goshiRecord.ActiveConnection = myConn ''设定RecordSeet的连接对象为Connection
goshiRecord.CursorLocation = adUseClient
yourRecord.ActiveConnection = myConn ''设定RecordSeet的连接对象为Connection
yourRecord.CursorLocation = adUseClient
End Sub
F. EXCEL从数据库提取数据
1、打开源数据文件,把首行中的对应的数据,复制行到空白位置。
G. 怎样从Excel中读取其他数据库的数据
可能不甚了解。本文就介绍了怎么样在Excel软件中获取其它数据库中的数据,以便在常用的数据处理软件中利用其它数据库中的数据。
关键字:Microsoft Excel,数据库,导入,表,Microsoft uery。
一、Microsoft Excel 2003简介
Microsoft Excel 2003是Microsoft Office 2003中的一个组件,它是一个高效、实用的电子表格软件,具有强大的数据处理与数据分析能力,为广大用户进行数据处理提供了一个很好的工具,也为广大的用户所熟悉。如何在Excel中利用其它数据库中的数据呢?
二、导入其它数据库表中的数据到Excel中
在Microsoft Excel中导入其它数据库表中的数据的方法非常简单。具体操作步骤如下:
第一步,启动Microsoft Excel,新建或者打开需要数据的工作簿,选中相应的工作表,并选中新导入的数据存放的起始单元格;
第二步,执行“数据”→“导入外部数据”子菜单下的“导入数据”命令,在对话框中选择要导入的数据所在的文件的类型,并通过对话框中的“查找范围”后面的下拉箭头找到要导入的数据文件所在的位置。
第三步,选中要导入的文件,单击图1所示对话框中的“打开”按钮。至此,选中的数据表中的数据就导入到了当前工作簿的当前工作表中了,当然也可以将导入的数据放在新的工作表中。
举例:在Excel工作簿“导入.XLS”中的sheet1工作表导入一个VFP(Visual FoxrPro,下同 )中的表(学生.dbf)中的数据。导入的具体操作步骤如下:
首先打开工作簿“导入.XLS”,选中sheet1工作表,如图2所示;执行“数据”→“导入外部数据”子菜单下的“导入数据”命令,在对话框中选择要导入的数据的文件的类型,并通过对话框中的“查找范围”后面的下拉箭头找到要导入的数据文件所在的位置;选中要导入数据的.dbf文件(此例的选择见图3),单击“打开”按钮。这样,就在Excel工作簿“导入.XLS”中的sheet1工作表中导入了VFP中建立的数据库表文件“学生.dbf”中的数据。结果如图4所示。
以上是在Excel工作表中导入VFP数据表中的数据的操作方法。如果要在Excel工作表中导入其它数据库表中的数据,操作方法基本相似。说明以下几点:
H. 在EXCEL中查询SQL数据库
用SqlCel查询Sql Server数据库。SqlCel可以同时支持Mysql,sql server,access,oracal。sqlcel的sql语句可以引用excel单元格的值作为变量。比如楼主要将123替换成Sheet1工作表的A1单元格的内容,那么SQL语句可以这么写
select * from AAA WHERE A = [Sheet1!A1]
这样执行就可以引用A1单元格的值了
I. 如何用excel中查找自己需要的数据库
以excel2010和SQL数据库为例
1.
打开一个空白表,在数据工具栏下面点击“自其它来源”——〉“来自SQLServer”.
2.
在弹出的窗口上面输入服务器名称或者IP,下面可以根据服务器设置来选择“使用windows认证”或者“使用下列用户名和密码”。选后者的话需要SQL用户或者管理员账号和密码。
3.
下一步验证通过后,如果服务器上有多个数据库,还要选择需要连接的数据库。
4.
对要查询的数据库表、字段选择后,可以设置查询条件,避免将大量不需要的数据通过网络传送到本地,加快传送速度。
5.
如果是查询本地access,那么可以直接在数据工具栏下面点击“自access”,然后在弹出的窗口定位到需要查询的access数据库文件,再指向特定的表,选定要查询的字段,方法基本与SQL数据库查询一样。
J. Excel的三种电子表格数据库类型-怎么把excel表格转换成数
Excel提供了至少三种设置数据的方式,因此您的报告和分析可以轻松地将其用作可靠的数据源。
Excel提供了三种在电子表格中排列数据的常规方法,因此您可以将其用作工作表公式的数据库:
简单(或“灰色单元格”)表,自Excel 2.0起就使用。
Excel 2007中引入的Excel Tables。
Excel 2010中引入的具有表格报表布局的数据透视 表。
我将其中任何一个称为“数据库”,可能会冒犯数据库专家。毕竟,这三个电子表格数据库易于设置和使用...根本不像“真实”数据库。即使这样,这些数据库也可以像Excel公式的真实数据库一样工作。如果您的报告和分析可以从这些类型的电子表格数据库之一中获取数据,则可以显着改善报告和分析。
在本文中,我将介绍每种类型的电子表格数据库。然后,在以后的文章中,我将更详细地介绍。
电子表格数据库1:简单表
20多年来,直到Excel 2007,Excel用户只能将“简单表”用作电子表格数据库。这种类型的数据库有两种样式:水平和垂直。
简单表电子表格数据库,水平样式
水平电子表格数据库的日期显示在一个标题行中,如下图所示。
通常,日期列使用每月“存储桶”,但它们可以使用所需的任何时间段。“代码”列可以包含总帐帐号,SKU,员工代码等。
为了说明该数据库提供的功能,请查看我的 Excel仪表板模板,这些模板从此类Excel数据库中获取其数据。要更新这些模板中每个期间的报告,只需更新数据库,在一个单元格中更改报告日期,然后重新计算Excel。如果您依靠Excel数据库进行其他报告和分析,则所有报告都可以轻松更新。
灰色的行和列是简单表的最明显特征。这些边界牢房起着至关重要的作用。这是如何做:
设置Excel表(或仅设置“表”)时,Excel会自动命名数据的每一列。同样,当您向表中添加相邻的行或列时,Excel也会自动扩展表以包括此新数据。
这与简单表相反,在简单表中,我们必须执行添加边框单元格和定义范围名称所需的手动步骤。
要创建此表,请设置数据,如在本示例中所见。选择标题和数据;选择“插入”,“表”,“表”;在“创建表”对话框中,确保选中“我的表有标题”;然后选择确定。
Excel会自动设置表格的格式并为其命名,就像它为新工作表命名一样。也就是说,它分配诸如Table1,Table2等之类的名称。与工作表一样,您可以重命名每个Table。
在公式中,当您引用表或简单表中的数据列时,将使用名称,而不是单元格引用。例如,如果要对“金额”列求和,则公式为:
简单表:= SUM(Amount)
Excel表格:= SUM(Table1 [Amount])
当然,如果重命名Table1,则第二个公式中对Table1的引用将自动更新。
电子表格数据库3:数据透视表的表格布局
数据透视表具有许多重要的优点,这就是为什么它们如此受欢迎的原因。但是它们也有很大的局限性,这就是为什么我过去很少使用它们。
好处是显而易见的。数据透视表为Excel用户提供了强大的功能,使他们可以在Excel中浏览关系数据,并将排序,汇总和过滤后的数据切片返回到电子表格。我不知道有任何其他产品可以提供这种功能。
另一方面,从我的角度来看,数据透视表似乎始终只是连接到Excel的报表生成器。它们提供了许多报告功能,但只有一个电子表格功能(GETPIVOTDATA)允许工作表功能使用数据透视表数据。因此,再次(我认为),Excel用户一直比在标准Excel报表中使用来自一个或多个数据透视表的数据的工作更加辛苦。
但最后,在Excel 2010中,Microsoft添加了Excel用户使用数据透视表作为标准报表和分析的真正有用数据源所需的大多数功能。因为我们可以解决缺少的功能,所以我们最终可以将数据透视表用作强大而庞大的电子表格数据库。