thinkphp PHPExcelを使用したインポートとエクスポート
7285 ワード
現在、多くのシーンでExcelを使用してエクスポートされていますが、ThinkPHP 5と結合しています.0フレームワークでは、excelエクスポート機能の実装手順を詳細に説明します.
1-前期準備作業: PHPExcelパッケージ をダウンロードはダウンロードアドレスを提供します.https://github.com/helloworldmy007/PHPExcel は私たちのtpのvendeフォルダの下に置かれています.
2-インポート機能実装
フロントコードの表示:
layuiプラグインjsコードを導入する必要があります
3-バックグラウンドコード
4-エクスポート機能
フロントコードの表示:
5-バックグラウンドコード
1-前期準備作業:
2-インポート機能実装
フロントコードの表示:
layuiプラグインjsコードを導入する必要があります
layui.use('upload', function(){
var $ = layui.jquery
,upload = layui.upload;
//
upload.render({
elem: '#test8'
,exts: 'xlsx|xls' //
,url: '/index.php/index/index/daoru'
,auto: false
//,multiple: true
,bindAction: '#test9'
,done: function(res){
console.log(res)
if(res.code == 1) {
layer.msg(res.msg, {'icon': 1});
setTimeout(function () {
parent.window.location.reload();
}, 1000);
} else {
layer.msg(res.msg);
}
}
});
});
3-バックグラウンドコード
public function daoru(){
if($this->request->isPost()){
$file = $this->request->file('file');
// /public/uploads/
$info = $file->move(ROOT_PATH . 'public' .DS.'upload'. DS . 'excel');
if($info){
//
$path=ROOT_PATH . 'public' . DS.'upload'.DS .'excel/'.$info->getSaveName();
// PHPExcel
vendor('PHPExcel.PHPExcel');
// PHPExcel ( : '\')
$extension = $info->getExtension();
if($extension =='xlsx')
{
$objReader = new \PHPExcel_Reader_Excel2007();
}else
{
$objReader = new \PHPExcel_Reader_Excel5();
}
$objPHPExcel = $objReader->load($path,$encode='utf-8');// excel
$sheet = $objPHPExcel->getSheet(0); //
$highestRow = $sheet->getHighestRow(); //
$highestColumn = $sheet->getHighestColumn(); //
$a=0;
//
for($i=2;$i<=$highestRow;$i++)
{
//* $i=2? ( Excel , , 。)
$data[$a]['id'] = $objPHPExcel->getActiveSheet()->getCell("A".$i)->getValue();//id
$data[$a]['adminname'] = $objPHPExcel->getActiveSheet()->getCell("B".$i)->getValue();
$data[$a]['status'] = $objPHPExcel->getActiveSheet()->getCell("C".$i)->getValue();
$data[$a]['icon'] = $objPHPExcel->getActiveSheet()->getCell("D".$i)->getValue();
$data[$a]['password'] = $objPHPExcel->getActiveSheet()->getCell("E".$i)->getValue();
$data[$a]['up_time'] = $objPHPExcel->getActiveSheet()->getCell("F".$i)->getValue();
$data[$a]['addtime'] = $objPHPExcel->getActiveSheet()->getCell("G".$i)->getValue();
$data[$a]['delete'] = $objPHPExcel->getActiveSheet()->getCell("H".$i)->getValue();
//
$a++;
}
//
//dump($data);
$aa = Db('admins')->insertAll($data);
if($aa){
$res['code']=1;
$res['msg'] = ' !';
}else{
$res['code']=0;
$res['msg'] = ' !';
}
return $res;
}
}
return $this->fetch();
}
4-エクスポート機能
フロントコードの表示:
5-バックグラウンドコード
// xls
public function daochu(){
//1. ,
$where =input('param.fw_pici');
//halt($where);
$list = Db('fangwei')->where('fw_pici','=',$where)->order('fw_id ASC')->select();
//2. PHPExcle
vendor('PHPExcel.PHPExcel');
//3. PHPExcel
$objPHPExcel = new \PHPExcel();
//4. sheet
$objPHPExcel->setActiveSheetIndex(0);
//5. ( excel )
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1', 'ID')
->setCellValue('B1', ' ')
->setCellValue('C1', ' ');
// A
$objPHPExcel->setActiveSheetIndex(0)->getStyle('A')->getAlignment()
->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
//
$objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('A')->setWidth(10);
$objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setWidth(30);
$objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('C')->setWidth(30);
//6. , excel 。
for($i=0;$igetActiveSheet()->setCellValue('A'.($i+2),$list[$i]['fw_id']);//ID
$objPHPExcel->getActiveSheet()->setCellValue('C'.($i+2),$list[$i]['fw_biaoqianma']);//
$objPHPExcel->getActiveSheet()->setCellValue('B'.($i+2),$list[$i]['fw_fangweima']);//
}
//7. Excel
$filename = ' '.date('ymd',time()).'.xls';
//8. sheet ;
$objPHPExcel->getActiveSheet()->setTitle(' ');
//9.
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header('Content-Disposition:inline;filename="'.$filename.'"');
// excel
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
//
$objWriter->save('php://output');
exit;
}