『壹』 thinkphp怎麼把excel導入資料庫
thinkPHP實現將excel導入到資料庫中的方法體如下:
PHPExcel插件可點擊此處本站下載。
這里使用的是thinkphp框架的3.1版本,下載好壓縮包,框架中的extend中的vendor文件夾中新建一個名為PHPExcel的文件夾,把classes裡面的內容放到裡面
下面是前端頁面
提示:我在測試的時候遇到報錯exception 'PHPExcel_Reader_Exception' with message 'The filename
原因是由於excel的文件後綴可能不同,我的文件後綴是xlsx,然後給把他另存為了xls的文件,就可以了
<html>
<head>
</head>
<body>
<form action="{pigcms::U('Jdb/abcdefgwulisuibian')}" method="post" enctype="multipart/form-data">
<input type="file" name="import"/>
<input type="hidden" name="table" value="tablename"/>
<input type="submit" value="導入"/>
</form>
</body>
</html>
下面是php的
function abcdefgwulisuibianuplod(){
$this->display();//顯示頁面
}
function abcdefgwulisuibian(){
if (!empty($_FILES)) {
import("@.ORG.UploadFile");
$config=array(
'allowExts'=>array('xlsx','xls'),
'savePath'=>'./Public/upload/',
'saveRule'=>'time',
);
$upload = new UploadFile($config);
if (!$upload->upload()) {
$this->error($upload->getErrorMsg());
} else {
$info = $upload->getUploadFileInfo();
}
vendor("PHPExcel.PHPExcel");
$file_name=$info[0]['savepath'].$info[0]['savename'];
$objReader = PHPExcel_IOFactory::createReader('Excel5');
$objPHPExcel = $objReader->load($file_name,$encode='utf-8');
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow(); // 取得總行數
$highestColumn = $sheet->getHighestColumn(); // 取得總列數
for($i=2;$i<=$highestRow;$i++)//這個地方根據需要,一般第一行是名稱,所以從第二行開始循環,也可以從第一行開始
{
$data['lianjieid'] = $objPHPExcel->getActiveSheet()->getCell("A".$i)->getValue();//資料庫欄位和excel列相對應
$data['yaoqingma'] = $objPHPExcel->getActiveSheet()->getCell("B".$i)->getValue();
$data['dlmima']= $objPHPExcel->getActiveSheet()->getCell("C".$i)->getValue();
$data['ljdi']= $objPHPExcel->getActiveSheet()->getCell("D".$i)->getValue();
M('jdb')->add($data);//插入資料庫
}
$this->success('導入成功!');
}else
{
$this->error("請選擇上傳的文件");
}
}
『貳』 PHP 用PHPExcel往資料庫導入大量數據
1、首先我們准備一個含有數據的Excel表格,表頭和數據表中的表欄位相對應。
『叄』 php 怎麼把數據導出到excel表格
php 把數據導出到excel表格有多種方法,比如使用 phpExcel 等,以下代碼是直接通過 header 生成 excel 文件的代碼示例:
<?php
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=xls_region.xls");
$cfg_dbhost='localhost';
$cfg_dbname='testdb';
$cfg_dbuser='root';
$cfg_dbpwd='root';
$cfg_db_language='utf8';
//END配置
//鏈接資料庫
$link=mysql_connect($cfg_dbhost,$cfg_dbuser,$cfg_dbpwd);
mysql_select_db($cfg_dbname);
//選擇編碼
mysql_query("setnames".$cfg_db_language);
//users表
$sql="descusers";
$res=mysql_query($sql);
echo"<table><tr>";
//導出表頭(也就是表中擁有的欄位)
while($row=mysql_fetch_array($res)){
$t_field[]=$row['Field'];//Field中的F要大寫,否則沒有結果
echo"<th>".$row['Field']."</th>";
}
echo"</tr>";
//導出100條數據
$sql="select*fromuserslimit100";
$res=mysql_query($sql);
while($row=mysql_fetch_array($res)){
echo"<tr>";
foreach($t_fieldas$f_key){
echo"<td>".$row[$f_key]."</td>";
}
echo"</tr>";
}
echo"</table>";
?>