程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP把excel(xls)文件導入mysql數據庫

PHP把excel(xls)文件導入mysql數據庫

編輯:關於PHP編程

excel導入mysql數據庫我整理了兩種辦法,一種就是使用PHP-ExcelReader來導入,另一種是把excel轉換成csv文件直接使用php相關函數導入即可。

昨晚一個客戶聯系我做網站,提出的要求是需要把客戶提供的excel文件裡面的數據導入到mysql數據庫,最常用的方法就是先把xls文件導出為csv格式的文件,然後在解析csv格式的文件導入到mysql數據庫。方法比較冗余,而且分好幾步進行,很不方便,斷橋殘雪今天介紹一種方法是直接跳過csv的中間環節,直接把excel文件導入mysql數據庫。

首先我們需要下載PHP-ExcelReader這是一個開源的項目,主要是來解析excel的文件,下載地址:http://sourceforge.net/projects/phpexcelreader,下載之後解壓,主要用到excel文件夾裡面的兩個文件reader.php和oleread.php(這個文件默認的是oleread.inc,不清楚為啥,一堆e文,沒看,直接改名即可)。

在reader.php文件中找到以下類似代碼(第一行既是),改成正確的oleread.php路徑即可:require_once 'oleread.php';

然後新建一個php文件引入reader.php,代碼如下:

 代碼如下 復制代碼

<?php
require_once 'Excel/reader.php';
$data = new Spreadsheet_Excel_Reader();
$data->setOutputEncoding('gbk');//此處設置編碼,一般都是gbk模式

$data->read('Book1.xls');//文件路徑bKjia.c0m

error_reporting(E_ALL ^ E_NOTICE);
//這裡我就只循環輸出excel文件的內容了,要入庫,只要把輸出的地方,寫一段mysql語句即可~
for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
 for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {
  echo """.$data->sheets[0]['cells'][$i][$j]."",";
 }
 echo "n";
}
?>

注意:請不要使用PHP-ExcelReader壓縮包裡面的xls進行測試,斷橋殘雪發現,那個文件既是使用excel也打不開,所以是錯誤的。

斷橋殘雪使用上面的方法解析了一個1.4M的數據,都顯示正常,所以大家可以放心使用

phpexcel比較費資源,不過並不是所有的excel都能讀取 我們可以轉換成csv來操作

首先確認你的數據庫是什麼編碼的,以utf-8為例,
你首先打開excel 文件,然後保存,選擇為另存為.csv文件。
然後用文本編輯器打開.csv文件,另存為utf-8的csv
然後你寫php 可以使用php 的getcsv  打開(這樣確保你有的字段中含有,而導致解析錯誤),然後把解析的結果導入到數據庫中。


如果是csv格式的我就不必要這麼麻煩了

 代碼如下 復制代碼


<?
//連接數據庫文件 www.bKjia.c0m
$connect=mysql_connect("localhost","admin","admin") or die("鏈接數據庫失敗!");
//連接數據庫(test)
mysql_select_db("testcg",$connect) or die (mysql_error());

$temp=file("test.csv");//連接EXCEL文件,格式為了.csv
for ($i=0;$i <count($temp);$i++)
{
$string=explode(",",$temp[$i]);//通過循環得到EXCEL文件中每行記錄的值
//將EXCEL文件中每行記錄的值插入到數據庫中
$q="insert into ceshi (name,num,dom) values('$string[0]','$string[1]','$string[2]');";
mysql_query($q) or die (mysql_error());

if (!mysql_error());
{
echo " 成功導入數據!";
}
echo $string[4]."n";
unset($string);
}
?>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved