這里介紹一種非常高效的方法。就是藉助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用戶使用數據透視表作為標准報表和分析的真正有用數據源所需的大多數功能。因為我們可以解決缺少的功能,所以我們最終可以將數據透視表用作強大而龐大的電子表格資料庫。