php原生excel導(dǎo)入
2021-04-22
1.首先下載安裝PHPExcel擴(kuò)展
擴(kuò)展下載地址:https://www.php.cn/xiazai/leiku/1491
我們只需要 將Classes文件改名
2.html文件
php代碼 ,sql語句自己寫吧
自行創(chuàng)建uploads文件否則報(bào)錯(cuò)?。?!
3.代碼:
<?php
$tmp = $_FILES['file']['tmp_name'];
if (empty($tmp)) {
echo '請選擇要導(dǎo)入的Excel文件!';
exit;
}
$save_path = "uploads/";
$filename = $save_path . date('Ymdhis') . ".xlsx"; //上傳后的文件保存路徑和名稱
if (copy($tmp, $filename)) {
require_once 'PHPExcel/PHPExcel.php';
require_once 'PHPExcel/PHPExcel/Reader/Excel5.php';
$PHPReader = new PHPExcel_Reader_Excel5(); //PHPExcel_Reader_Excel2007 PHPExcel_Reader_Excel5
//載入文件
$PHPExcel = $PHPReader->load($filename);
//獲取表中的第一個(gè)工作表,如果要獲取第二個(gè),把0改為1,依次類推
$currentSheet = $PHPExcel->getSheet(0);
//獲取總列數(shù)
$allColumn = $currentSheet->getHighestColumn();
//獲取總行數(shù)
$allRow = $currentSheet->getHighestRow();
//循環(huán)獲取表中的數(shù)據(jù),$currentRow表示當(dāng)前行,從哪行開始讀取數(shù)據(jù),索引值從0開始
for ($currentRow = 1; $currentRow <= $allRow; $currentRow++) {
//從哪列開始,A表示第一列
for ($currentColumn = 'A'; $currentColumn <= $allColumn; $currentColumn++) {
//數(shù)據(jù)坐標(biāo)
$address = $currentColumn . $currentRow;
//讀取到的數(shù)據(jù),保存到數(shù)組$arr中
$data[$currentRow][$currentColumn] = $currentSheet->getCell($address)->getValue();
}
}
$add_time = date('Y-m-d H:i:s', time());
var_dump($data);exit;
foreach ($data as $k => $v) {
if ($k > 1) {
$sql = "insert into user (username,password) values ('" . $v['B'] . "', '" . $v['C'] . "')";
mysql_query($sql);
}
}
$sql = "SELECT * FROM user";
$result = mysql_query($sql);
$tip = '用戶導(dǎo)入成功' . ',現(xiàn)在' . mysql_num_rows($result) . '條數(shù)據(jù)了!';
echo "";
exit;
}
?>
4.如果報(bào)錯(cuò)
PHPExcel的exception ‘Exception‘ with message ‘The filename is not recognised as an OLE file
錯(cuò)誤信息
exception 'Exception' with message 'The filename ../../Uploads/taobaoExcel/day_110815/201108151844517294.xls is not recognised as an OLE file' in E:\phpworks\apache\htdocs...
問題原因:
雖然該文件可能有一個(gè)xls擴(kuò)展名,這是一個(gè)“假”的Excel文件。如果您在文本編輯器打開該文件你會(huì)發(fā)現(xiàn)它實(shí)際上是一個(gè)HTML文件。
我的原因是模版有錯(cuò),我直接把Excel2007的后綴,xlsx改成xls,導(dǎo)致“偽”xls文件
解決辦法:
使用Excel2007創(chuàng)建后,另存為2003的
也就是將上傳的文件 xlsx后綴 弄成xls即可
百度網(wǎng)盤源碼下載:https://pan.baidu.com/s/1cz9tRTw0enXOhj9duzYnzw
提取碼:kfaa
簡單分享快樂學(xué)習(xí),如有錯(cuò)誤請多包涵!