日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 与 xls 连接_数据库MySQL与xls文件的互导

發布時間:2025/3/12 数据库 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 与 xls 连接_数据库MySQL与xls文件的互导 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近的一個項目需要將xls表導入到MySQL數據庫中和將MySQL數據表導出到xls表中,在網上搜了很多資料,經過多次嘗試終于實現了功能,廢話不多說,在這粘貼出代碼,希望可以幫到需要的朋友。

一、將.xls表導入到MySQL數據表中。

這里我用的是一個類庫,下載地址:http://sourceforge.net/projects/phpexcelreader/ ?可以這個下載的不能直接使用,要做相應的修改(參照:http://www.cnblogs.com/phpzxh/archive/2009/09/16/1568133.html)。下載以后,我們需要的只是那個Excel文件夾,其他是自帶的案例,因為不能運行所以可以刪除不管。打開這個Excel文件夾,里面有兩個文件,oleread.inc和reader.php,其中這個readre.php是應該包含oleread.inc的,顯然下載的是沒有,只要改動將其包含進去就可以了。接下來就可以直接使用了,看代碼

1 $Import_TmpFile = $_FILES['file']['tmp_name'];2 require_once '../utils/reader.php'; //引入剛才的reader.php3 $data = newSpreadsheet_Excel_Reader();4 $data->setOutputEncoding('UTF-8');5 $data->read($Import_TmpFile);6 //$data是對象數據,將其遍歷成數組

7 $array =array();8 for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {9 for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {10 $array[$i][$j] = $data->sheets[0]['cells'][$i][$j];11 }12 } //這一步就是講xls文件的內容遍歷出來了,是一個數組的形式,下面的就是如何插入數據庫了。13 //將數據寫入trade交易數據表中

14 $sql = "insert into dou_trade(trade_time,institution,mediacy,trade_account,user_name,goods_type,trade_number,trade_pay,level_benefit,hold_benefit,benefit_total,exchange_poundage,membership_poundage,user_poundage) values(:trade_time,:institution,:mediacy,:trade_account,:user_name,:goods_type,:trade_number,:trade_pay,:level_benefit,:hold_benefit,:benefit_total,:exchange_poundage,:membership_poundage,:user_poundage)";15 $stmt = $pdo->prepare($sql);16 for($i=1;$i<=count($array);$i++){17 $stmt->bindParam(':trade_time', $array[$i]['2']);18 $stmt->bindParam(':institution', $array[$i]['3']);19 $stmt->bindParam(':mediacy', $array[$i]['4']);20 $stmt->bindParam(':trade_account', $array[$i]['5']);21 $stmt->bindParam(':user_name', $array[$i]['6']);22 $stmt->bindParam(':goods_type', $array[$i]['7']);23 $stmt->bindParam(':trade_number', $array[$i]['8']);24 $stmt->bindParam(':trade_pay', $array[$i]['9']);25 $stmt->bindParam(':level_benefit', $array[$i]['10']);26 $stmt->bindParam(':hold_benefit', $array[$i]['11']);27 $stmt->bindParam(':benefit_total', $array[$i]['12']);28 $stmt->bindParam(':exchange_poundage', $array[$i]['13']);29 $stmt->bindParam(':membership_poundage', $array[$i]['14']);30 $stmt->bindParam(':user_poundage', $array[$i]['15']);31 $tag = $stmt->execute();32 }

這樣就可以將xls文件的內容導入到數據表中了。

二、將MySQL數據表內容導出到xls表中。

這得益于一篇文章,地址:http://krasimirtsonev.com/blog/article/php-export-mysql-data-to-xls-file。其核心代碼如下

1 functionxlsBOF() {2 echo pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0);3 }4 functionxlsEOF() {5 echo pack("ss", 0x0A, 0x00);6 }7 function xlsWriteNumber($Row, $Col, $Value) {8 echo pack("sssss", 0x203, 14, $Row, $Col, 0x0);9 echo pack("d", $Value);10 }11 function xlsWriteLabel($Row, $Col, $Value) {12 $L = strlen($Value);13 echo pack("ssssss", 0x204, 8 + $L, $Row, $Col, 0x0, $L);14 echo $Value;15 }16 //prepare headers information

17 header("Content-Type: application/force-download");18 header("Content-Type: application/octet-stream");19 header("Content-Type: application/download");20 header("Content-Disposition: attachment; filename=\"export_".date("Y-m-d").".xls\"");21 header("Content-Transfer-Encoding: binary");22 header("Pragma: no-cache");23 header("Expires: 0");24 //start exporting

25 xlsBOF();26 //first row

27 xlsWriteLabel(0, 0, "id");28 xlsWriteLabel(0, 1, "name");29 xlsWriteLabel(0, 2, "email");30 //second row

31 xlsWriteNumber(1, 0, 230);32 xlsWriteLabel(1, 1, "John");33 xlsWriteLabel(1, 2, "john@yahoo.com");34 //third row

35 xlsWriteNumber(2, 0, 350);36 xlsWriteLabel(2, 1, "Mark");37 xlsWriteLabel(2, 2, "mark@yahoo.com");38 //end exporting

39 xlsEOF();

只要將其中的first row /second row等換成表的內容就可以了。其中注意的是是編碼問題,數據庫中的數utf-8,而xls中式gbk編碼的,為防止出現亂碼,最好的辦法是在寫入xls表之前用iconv進行轉碼就可以了。

總結

以上是生活随笔為你收集整理的mysql 与 xls 连接_数据库MySQL与xls文件的互导的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。