標籤:
Excel串連到MySQL
即使當今時代我們擁有了類似微軟水晶報表之類的強大報表工具和其他一些靈活的客戶管 理應用工具,眾多企業在分析諸如銷售統計和收入資訊的時候,微軟的Excel依然是最常用的工具。這當然不是沒有理由的:Excel以其強大豐富的各種功 能,已經成為辦公環境中不可或缺的工具。
然而,現在公司正在逐漸地將資料開始儲存在遠端資料庫中,這樣可以供企業員工從不同的地方來閱讀和修改資料。但是,以前固有的工作流程習慣是很難打破的。當你的老闆需要從遠端使用Excel以餅圖的形勢來看一下最近的銷售資料的時候,你該怎麼辦?
或許你沒有想到,你可以將Excel串連到一個資料庫,而且不僅僅限於微軟的SQL Server。實際上Excel可以串連到所有的主流資料庫,諸如MySQL、PostgreSQL和Oracle等等,只要該資料庫提供ODBC驅動就可以。在本文中,我們將以MySQL為例,來瞭解如何將Excel串連到MySQL。
安裝MyODBC
ODBC提供了一種執行幾乎所有常規任務的標準方式,諸如資料恢複、刪除和選擇,這意味著針對不同的資料庫,要編寫不同的驅動程式來將使用者的命令解釋成標準的ODBC標準。MySQL早就有一個特定的ODBC驅動可用,也就是我們所熟知的MyODBC。在每一台你想使用Excel串連到MySQL的電腦上,你都需要安裝MyODBC驅動。
那麼,現在首先來下載MyODBC安裝程式(http://dev.mysql.com/downloads/connector/odbc)。該安裝包只有2.3M,如果你是寬頻連線的話,下載應該很快就完成。
一旦你完成下載MyODBC後,點擊表徵圖開始安裝。如果你沒有特殊的安裝要求,選擇典型安裝即可。點擊安裝按鈕開始安裝,安裝完成後點擊完成按鈕推出安裝程式。
配置MyODBC
如果你的作業系統是Windows 資料來源(ODBC)。à管理工具à控制台à設定àXP的話,你可以按照如下方式開啟ODBC終端:開始菜單
圖1、ODBC資料來源管理器
點擊“Add(增加)”按鈕來增加一個新的資料來源,並滾動滑動條直到你發現MySQL ODBC驅動項為止。雙擊該項,開始配置過程。配置視窗如所示。
圖2、增加MySQL資料來源
填上各個選項後,點擊“Test(測試)”按鈕,確認該驅動是否能夠與MySQL進行串連。如果你的資料庫伺服器與Excel在同一台機器的話,使用“localhost”或“127.0.0.1”作為伺服器位址的話,有可能不會生效。那麼,你可以使用一個點作為伺服器位址,這樣該驅動使用命名通道而不是TCP/IP來串連資料庫。如果你要串連到遠端的資料庫,那麼別忘了確保防火牆是否阻擋了你與MySQL串連的連接埠(通常是3306)。最後,不要忘了使用一個現有的合法登入帳號。如果你需要做的不僅僅是讀取資料,還需要插入和更新資料,那麼要注意登入的帳號要具有相應的許可權。
一旦測試連接成功後,點擊“OK(確認)”按鈕,就將在已存在的資料來源列表中多一條。接下來,我們將串連Excel到MySQL。
串連Excel到MySQL
為了做這個練習,我們將串連Excel到一個名為contacts的MySQL表,其中包含全國範圍內的不同夥伴和相關個人的聯絡資訊。該MySQL表結構如下:
create table contacts (rowid smallint unsigned not null auto_increment,
firstname varchar(20) not null,
lastname varchar(30) not null,
email varchar(55) not null,
title varchar(20) not null,
company varchar(30) not null,
phone char(10) not null,
revenue decimal(5,2) not null,
primary key(rowid)); |
我已經在這些表中填充了一些樣本資料,你將不久在Excel中看到它們。為了從Excel中管理這些資料,按如下操作:
1、開啟Excel,轉到菜單上的“資料”,然後選擇匯入外部資料,匯入資料。
2、從出現的視窗中,選擇“串連到新資料來源.odc”。
3、一個標題為“歡迎使用資料連線嚮導”的視窗出現,從這個視窗中選擇“ODBC DSN”。
4、從標題為“串連到ODBC資料來源”的視窗中,選擇你剛才建立的MySQL ODBC資料來源。
5、從標題為“選擇資料庫和表”的視窗中,選擇相應的你要串連的資料庫和表,3所示,選擇好表後,點擊下一步。
6、在標題為“儲存資料連線檔案並結束”的最後一個視窗中,選擇結束按鈕。
7、你將被詢問在什麼地方儲存這個資料,你可以選擇一個已有的工作表或者指定建立一個新的工作表中。選擇後點擊確認(OK)按鈕。
圖3、串連到一個指定的資料庫和表
如果一切順利的話,你所需要的資訊將會顯示在Excel中,4所示。
圖4、在Excel中查看contacts資料庫
這樣,使用者就可以開始自由的建立各種圖表了。例如,建立一個餅圖是小菜一碟的事情,5所示。
圖5、每一個連絡人的收入餅圖
如果你需要的資料跨表的話,你可以嘗試在資料庫建立一個視圖,然後使用Excel串連該視圖。
MySQL的MyODBC驅動為客戶將資料庫連接到不同的用戶端應用程式敞開了一扇大門。我希望這篇短文能讓你舉一反三,實作類別似的操作。
將Excel資料匯入MySql
1.將選中的資料快兒拷貝到一個TXT文字檔中(記得把後面的空格消掉。。),假如存到“D:\data.txt”這個位置裡。
2.根據要匯入的資料快兒建立MySql資料庫和表,然後進入命令提示字元裡使用命令
load data local infile ‘D:\data.txt‘ into table exceltomysql fields terminated by ‘\t‘;
進行匯入操作
具體還是參考高手的:
http://hi.baidu.com/harite/blog/item/6a5fb9de55e6f258ccbf1adf.html
非常感謝,自己也做個筆記
手動進行Excel資料和MySql資料轉換
今天是全國數學建模比賽,同學選的一個題目需要對一個large的Excel表格進行統計,好哥們兒嘛~~便協助他完成了資料從Excel到MySql的轉化。記下具體步驟分享給大家,也免得大家到網上到處亂找了。
假如要把的Excel表格匯入到MySql資料庫中,
,
步驟一:
選取要匯入的資料快兒,另外要多出一列,如:
步驟二:
將選中的資料快兒拷貝到一個建立的表格工作薄,然後“另存新檔” -》“文字檔(定位字元分割)(*.txt)”,假如存到“D:\data.txt”這個位置裡。
步驟三:
根據要匯入的資料快兒建立MySql資料庫和表,然後使用命令
load data local infile ‘D:\data.txt‘ into table exceltomysql fields terminated by ‘\t‘;
進行匯入操作。如:
現在資料已經全部匯入到MySql裡了,
讓我們來select一下吧,
到此,資料由Excel到MySql的轉換已經完成。
下面說下,資料從MySql到Excel的轉化,其過程其實還是藉助那個“定位字元分割”的文字檔。
將如要將這個表中的男生資訊匯入到Excel中,可以這樣。
select * into outfile ‘D:\man.txt‘ from exceltomysql where xingbie="男";
這樣,表中所有男生的資訊都被輸出到以定位字元分割,‘\n‘結尾的文字檔D:\man.txt檔案中。
你可以開啟Excel,然後選擇“資料”->“匯入外部資料”->“匯入資料”,選中“D:\man.txt”,一路確定就行了。
最後祝各位好運~~Yours [email protected]
MySQL for Excel是包含在MySQL Installer中的一個工具,允許開發人員通過微軟的Excel直接操作MySQL資料庫,比如: 匯出MySQL資料到Excel 匯入Excel資料到MySQL現有資料表或建立資料表 直接在Excel中編輯MySQL資料1.1.1版本主要修複了一些bug,詳細資料:MySQL for Excel 1.1.1 GA has been released下載:http://dev.mysql.com/downloads/installer/
懶人懶辦法:把Excel資料匯入到MySQL中別跟我說什麼ODBC匯入啦寫個小指令碼匯入啦或者是用其他什麼軟體,雖然靈活但是有時候的確挺折騰人。開啟Excel,處理好你需要的列,把不需要的列都刪掉。另存新檔CSV檔案。特別注意一點:如果你的MySQL預設編碼方式是UTF-8的話需要用Editplus等軟體把CSV檔案另存新檔UTF-8編碼格式,因為Excel預設編碼格式是ANSI,MySQL在匯入中文資料的時候很可能會出Warning:1366 Incorrect string value然後到MySQL裡建表,欄位的順序要跟Excel裡的完全一致。(不要建其他任何列,包括id)然後運行如下語句:load data local infile ‘[你的csv檔案路徑]‘ into table [表名] fields terminated by ‘,‘;例如:load data local infile ‘E:\\Dev\\a.csv‘ into table t1 fields terminated by ‘,‘;注意csv檔案的分隔字元是逗號,所以最後terminated by之後跟的是逗號。如果是定位字元,則用例如:load data local infile ‘E:\\Dev\\a.csv‘ into table t1 fields terminated by ‘\t‘;這一步記得查看log,必須沒有warning才算成功。最後Alter Table,加入id列(primary key,not null, auto increment)和其他列即可。
http://wenku.baidu.com/view/ece4ace06137ee06eef91814.html
http://wenku.baidu.com/view/2cb3c0d87f1922791688e8af.html
http://wenku.baidu.com/view/b6cf173167ec102de2bd8992.html
mysql匯出excel檔案的幾種方法方法一php教程用mysql的命令和shellselect * into outfile ‘./bestlovesky.xls‘ from bestlovesky where 1 order by id desc limit 0, 50;方法二 把bestlovesky.xls以文本方式開啟,然後另存新檔,在編碼選擇ansi編碼,儲存echo "select id,name from bestlovesky where 1 order by id desc limit 0, 50;"| /usr/local/mysql/bin/mysql -h127.0.0.1-uroot -p123456 > /data/bestlovesky.xls方法三mysql your_database -uroot -p -e "select * from test.table2 " > /home/test.xls用sz命令將檔案下載到本地,開啟如果中文亂碼,因為office預設的是gb2312編碼,伺服器端產生的很有可能是utf-8編碼,這個時候你有兩種選擇,1.在伺服器端使用iconv來進行編碼轉換 iconv -futf8 -tgb2312 -otest2.xls test.xls如果轉換順利,那麼從server上下載下來就可以使用了。轉換如果不順利,則會提示:iconv: illegal input sequence at position 1841 類似於這樣的錯誤,先把test.xls下載下來,這個時候檔案是utf-8編碼的,用excel開啟,亂碼。把test.xls以文本方式開啟,然後另存新檔,在編碼選擇ANSI編碼,儲存。
Excel串連到MySQL,將Excel資料匯入MySql,MySQL for Excel,,