2014-10-02 101 views
0

我使用PHP dbase擴展來讀取dbase文件並將它們上傳到MySQP。將100個Excel文件傳輸到MySQL

我的代碼:

if(dbase_open($FileDir,0)){ 

        $dbOpen = dbase_open($FileDir,0); 
        $records = dbase_numrecords($dbOpen); 

        $qry = ""; 
        $qry = "INSERT INTO ".$Table." (`SCADA`, `Date`, `PlantNo`, `State`, `SubState`, `Frequency`) VALUES "; 

        for ($i=1; $i<=$records; $i++){ 

         $rows = dbase_get_record_with_names($dbOpen,$i); 
         $qry .= '('.$SCADA.','.$rows['Date'].','.$rows['PlantNo'].','.$rows['State'].','.$rows['SubState'].','.$rows['Frequency'].'),'; 

        } 

        $qry = substr($qry, 0, -1); 
        $Insert = $conn -> prepare($qry); 
        $Insert -> execute(); 

現在我必須做相同的,但與的XLS文件!我知道我可以將它們轉換爲csv並通過PHP導入它們,但是我有100個xls文件...我怎樣才能將它們轉移到MySQL?螞蟻想法?

+0

通過使用[phpexcel](https://phpexcel.codeplex.com/)? – fvu 2014-10-02 09:03:11

+0

我使用phpexcel插件讀取excel文件並將數據插入到mysql – CodeMonkey 2014-10-02 09:04:54

+0

謝謝。我會試一試! – user3163404 2014-10-02 09:10:56

回答

0
沒有第三方專利產品從Excel到MySQL

直銷進口將是不可能的,那你需要購買像 - dbForge Studio或其他東西(我沒有嘗試過這個,所以我甚至不能推薦它)。名爲phpmyadmin的工具曾經有過這個功能,但是它自3.4.5版本開始折舊,所以如果你安裝一箇舊的,它可能是你的一個選擇。這真的取決於幾個因素。

對於一般的開始,當然,你應該確保你想要導入的文件與你想要導入的數據庫具有相同的列和列順序。

如果你轉換或導出你的xls文件到CSV文件(它是一個單獨的故事,關於如何做到這一點,我不會介紹這裏,大量的資源或在線轉換器),你可以將它們全部合併Excel或從您的控制檯。在所有現代操作系統上,您可以將所有文件放在同一目錄中,cd或dir進入它並運行「cat * .csv> merged.csv」,它將合併所有文件。 (在Windows機器上覆制/ b * .csv merged.csv)

一旦你有一個合併文件,你可以運行php來執行mysql導入 - 「LOAD DATA INFILE'c:/ path/to/file/merged.csv」 INTO TABLE表名」(更多關於它在這裏 - http://dev.mysql.com/doc/refman/5.1/en/load-data.html

Ofcourse,您還可以通過自動使用PHP庫像PHPExcel出口XLS到CSV - https://phpexcel.codeplex.com/

0

由於Cninroh建議,你需要一種專有產品。我建議我寫一個產品叫做Excel2MySQL。它具有用於手動導入的簡單用戶界面,並且還包括用於自動上載的command line interface,並且可以直接讀取任何excel文件。不需要導出爲csv文件。 Excel工作表名稱定義目標MySQL表名。該表可以自動創建或簡單地附加到。所有字段也可以自動優化爲正確的MySQL類型。該程序可以免費試用,所以你可以驗證它是否適合你。

-h, --help, display help message and exit 
-f file, Excel file to convert (include full path) (REQUIRED) 
-s sheet, Excel sheet to convert (omit to convert all) 
-z host, mysql server hostname or IP address (omit will default to localhost) 
-d database, mysql database name (REQUIRED) 
-u user, mysql user name (REQUIRED) 
-p password, mysql password 
-x port, mysql port number (omit will default to 3306) 
-r, replace existing table (omit to append to existing table) 
-n, first row is not a header (omit to indicate first row contains header) 
-a, allow spaces in table & field names (omit to change spaces to underscores) 
-m, use myisam database storage engine (omit to use innodb) 
-k, keep blank rows & columns (omit to remove) 
-c, Unmerge merged cells 
-v, define all fields as varchar type on tables (omit to optimize field types) 

下面是一個示例命令行上載excel文件和所有它的片材以表:

excel2mysqlCLI.exe -f "c:\my excel.xls" -d mydb -u myid -p mypass