㈠ thinkphp怎麼把excel導入數據
Thinkphp使用PHPExcel實現導出Excel
//導出Excel表格
public function export($data,$excelFileName,$sheetTitle){
$this->__construct();
/* 實例化類 */
$objPHPExcel = new PHPExcel();
/* 設置輸出的excel文件為2007兼容格式 */
//$objWriter=new PHPExcel_Writer_Excel5($objPHPExcel);//非2007格式
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
/* 設置當前的sheet */
$objPHPExcel->setActiveSheetIndex(0);
$objActSheet = $objPHPExcel->getActiveSheet();
/*設置寬度*/
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(10);
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(60);
/* sheet標題 */
$objActSheet->setTitle($sheetTitle);
$i = 2;
foreach($data as $value)
{
/* excel文件內容 */
$j = 'A';
foreach($value as $value2)
{
// $value2=iconv("gbk","utf-8",$value2);
$objActSheet->setCellValue($j.$i,$value2);
$j++;
}
$i++;
}
/* 生成到瀏覽器,提供下載 */
ob_end_clean(); //清空緩存
header("Pragma: public");
header("Expires: 0");
header("Cache-Control:must-revalidate,post-check=0,pre-check=0");
header("Content-Type:application/force-download");
header("Content-Type:application/vnd.ms-execl");
header("Content-Type:application/octet-stream");
header("Content-Type:application/download");
header('Content-Disposition:attachment;filename="'.$excelFileName.'.xlsx"');
header("Content-Transfer-Encoding:binary");
$objWriter->save('php://output');
㈡ thinkPHP做上傳excel然後要求在網頁中顯示出Excel的內容怎麼做
用phpexcel 來導出裡面的數據啊 然後再用數據 在頁面上展示就好了
㈢ 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("請選擇上傳的文件"); } } 更多關於thinkPHP相關內容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《ThinkPHP常用方法總結》、《smarty模板入門基礎教程》及《PHP模板技術總結》。 希望本文所述對大家基於ThinkPHP框架的PHP程序設計有所幫助。
㈣ thinkphp5.0 如何導入phpexcel插件,能詳細些點嗎
在tp5.0的根目錄找到extend文件夾,然後將phpexcel文件夾放到這裡面,然後項目裡面引入
//引入extend/phpexcel/PHPExcel.php
import('phpexcel.PHPExcel',EXTEND_PATH);
//實例化PHPExcel
$objPHPExcel=newPHPExcel();
㈤ 如何利用ThinkPHP框架實現Excel數據導入和導出
首先,將PHPExcel文件放入到vendor目錄下面:
備註:ThinkPHP3.1的路徑是:./ThinkPHP/Extend/Vendor/;ThinkPHP3.2的路徑是:./ThinkPHP/Library/Vendor/;
數據導出功能的實現:
編寫導出為Excel的函數exportExcel。
㈥ thinkphp使用phpexcel通過excel上傳數據到資料庫報錯:
可能是你excel格式不規范
我用的也是tp的框架,操作excel時,沒有問題的
㈦ thinkphp中怎樣用php導入excel數據表格
用phpexcel呢,不過對於這個我還是不太熟悉,只能幫到你這一點,呵呵
㈧ ThinkPHP 3.2 + PHPExcel 怎麼做批量上傳excel 最好能個我個完整的demo感激不盡
用PHPExcel,PHPExcel是相當強大的 MS Office Excel 文檔生成類庫。
你上它的官/網把程序包下/載下來,裡面有 PHPExcel 的程序、還有30個實常式序和三個文檔。
看一下其中的開發文檔你就會用了。
讀取(這段在開發文檔里有的,在13頁):
require_once '../Classes/PHPExcel/IOFactory.php';
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load("test.xlsx");
$objWorksheet = $objPHPExcel->getActiveSheet();
echo '<table>' . "\n";
foreach ($objWorksheet->getRowIterator() as $row) {
echo '<tr>' . "\n";
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);
foreach ($cellIterator as $cell) {
echo '<td>' . $cell->getValue() . '</td>' . "\n";
}
echo '</tr>' . "\n";
}
echo '</table>' . "\n";
?>
㈨ thinkphp3.1中的phpexcel導入怎麼用
首先,去PHPExcel官方網站下載PHPExcel,官方地址為;http://phpexcel.codeplex.com/.我下的是1.8.0版本的.解壓後發現還是蠻大的,有十幾M,不知道其他版本是不是會小點.
這里寫圖片描述
把解壓好的PHPExcel文件放在ThinkPHP的Vender文件夾下(專門放第三方類庫的),如下圖
這里寫圖片描述
其次,創建Excel轉換數組類,並把它放在ThinkPHP\Extend\Library\ORG\Util目錄下
class ExcelToArrary {
public function __construct() {
Vendor("PHPExcel.Classes.PHPExcel");//引入phpexcel類(留意路徑,不了解路徑可以查看下手冊)
Vendor("PHPExcel.Classes.PHPExcel.IOFactory"); //引入phpexcel類(留意路徑)
}
public function read($filename,$encode,$file_type){
if(strtolower ( $file_type )=='xls')//判斷excel表類型為2003還是2007
{
Vendor("PHPExcel.Classes.PHPExcel.Reader.Excel5"); //引入phpexcel類(留意路徑)
$objReader = PHPExcel_IOFactory::createReader('Excel5');
}elseif(strtolower ( $file_type )=='xlsx')
{
Vendor("PHPExcel.Classes.PHPExcel.Reader.Excel2007");//引入phpexcel類(留意路徑)
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
}
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load($filename);
$objWorksheet = $objPHPExcel->getActiveSheet();
$highestRow = $objWorksheet->getHighestRow();
$highestColumn = $objWorksheet->getHighestColumn();
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
$excelData = array();
for ($row = 1; $row <= $highestRow; $row++) {
for ($col = 0; $col < $highestColumnIndex; $col++) {
$excelData[$row][] =(string)$objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
}
}
return $excelData;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
如右圖這里寫圖片描述
現在來說Excel,表格的結構樣式和MySQL樣式要類似,表格樣式如下(本人對Excel使用只是一般,所以如果有Excel大神做的報表,不知後果如何).
這里寫圖片描述
前端頁面相關代碼:
<div>
<form method="post" action="{:U('Index/upload')}" enctype="multipart/form-data">
<font>導入Excel數據:</font>
<label for="file_stu">上傳</label>
<input name="file_stu" type="file" id="file_stu" />
<h3>溫馨提示:</h3>
<p>請確認您的Excel表格類型是xls的,以免出現兼容問題.</p>
<inputtypeinputtype="submit" class="sure" value="導入" />
</form>
</div>
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
最後,控制器部分使用了Thinkphp自帶的上傳類,使用unlink()函數是為了刪除上傳的excel表格,以免文件夾存入過多文件,調試代碼時可先注釋掉.或者不寫也行,把刪除文件的工作交給你們的運維.代碼中foreach循環部分$v[]里的0, 1,2可以改動以下看看與Excel表格里的內容是什麼關系.可以把數組列印出來看一看,你就很清楚了
相關代碼:
public function upload(){
import('ORG.Util.ExcelToArrary');//導入excelToArray類
if (! empty ( $_FILES ['file_stu'] ['name'] )){
import('ORG.Net.UploadFile');
$upload = new UploadFile();// 實例化上傳類
$upload->maxSize = 3145728 ;// 設置附件上傳大小
$upload->allowExts = array('xls', 'xlsx');// 設置附件上傳類型
$upload->savePath = './Uploads/';// 設置附件上傳目錄
if(!$upload->upload()) {// 上傳錯誤提示錯誤信息
$this->error($upload->getErrorMsg());
}else{// 上傳成功 獲取上傳文件信息
$info = $upload->getUploadFileInfo();
}
}else{
$this->error('(⊙o⊙)~沒傳數據就導入?!你在逗我?!');
}
//mp($info);die;
$ExcelToArrary=new ExcelToArrary();//實例化
$res=$ExcelToArrary->read($info[0]['savepath'].$info[0]['savename'],"UTF-8",$info[0]['extension']);//傳參,判斷office2007還是office2003
$res = array_slice($res,1); //為了去掉Excel里的表頭,也就是$res數組里的$res[0];
//mp($res);
foreach ( $res as $k => $v ){ //循環excel表
$data[$k]['mobile'] = $v [0];//創建二維數組
$data[$k]['name'] = $v [1];
$data[$k]['ty'] = $v [2];
}
//mp($data);die;
$result=M('appkey')->addAll($data);
if(!$result){
$this->error('導入資料庫失敗');
exit();
}else{
$filename = './Uploads/'.$info[0]['savename'];//上傳文件絕對路徑,unlink()刪除文件函數
if (unlink($filename)) {
$this->success ( '導入成功' );
}else{
$this->error('緩存刪除失敗');
}
}
}
㈩ 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("請選擇上傳的文件");
}
}