Thinkphp中導出Excel表格具體方法如下:
1.在ThinkPHP/Library/Vendor目錄下新建文件夾PHPExcel,將excel文件解壓後放入文件夾中。
(下載地址:鏈接:http://pan.baidu.com/s/1kUVTUez 密碼:3kxl)
2、代碼如下:(方法一)
//引入PHPExcel庫文件
Vendor('PHPExcel.Classes.PHPExcel');
//創建對象
$excel = new PHPExcel();
//Excel表格式,這裏簡略寫了8列
$letter = array('A','B','C','D','E','F','F','G');
//表頭數組
$tableheader = array('序號','客棧名稱','客棧地址','座機','手機','QQ','郵箱');
//填充表頭信息
for($i = 0;$i < count($tableheader);$i++) {
$excel->getActiveSheet()->setCellValue("$letter[$i]1","$tableheader[$i]");
}
//表格數組
$data = array(
array('1','B','C','D','E','F','G'),
array('2','B','C','D','E','F','G'),
array('3','B','C','D','E','F','G'),
array('4','B','C','D','E','F','G'),
array('5','B','C','D','E','F','G'),
array('6','B','C','D','E','F','G'),
array('7','B','C','D','E','F','G'),
);
//填充表格信息
for ($i = 2;$i <= count($data) + 1;$i++) {
$j = 0;
foreach ($data[$i - 2] as $key=>$value) {
$excel->getActiveSheet()->setCellValue("$letter[$j]$i","$value");
$j++;
}
}
//創建Excel輸入對象
$write = new PHPExcel_Writer_Excel5($excel);
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="客棧信息.xls"');
header("Content-Transfer-Encoding:binary");
$write->save('php://output');
方法二
//導出xls
public function daochu(){
//1.從數據庫中取出數據
$where =input('param.fw_pici');
//halt($where);
$list = Db('fangwei')->where('fw_pici','=',$where)->order('fw_id ASC')->select();
//halt($list);
//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);
//6.循環剛取出來的數組,將數據逐一添加到excel表格。
for($i=0;$i<count($list);$i++){
$objPHPExcel->getActiveSheet()->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;
}
導入
public function inOffice()
{
vendor("PHPExcel.PHPExcel"); //方法一
$objPHPExcel = new \PHPExcel();
//獲取表單上傳文件
$file = request()->file('excel');
$info = $file->validate(['ext'=>'xlsx,xls,csv'])->move(ROOT_PATH . 'public' . DS . 'excel');
if($info){
//獲取文件名
$exclePath = $info->getSaveName();
//上傳文件的地址
$file_name = ROOT_PATH . 'public' . DS . 'excel' . DS . $exclePath;
$objReader = \PHPExcel_IOFactory::createReader('Excel5');
//加載文件內容,編碼utf-8
$obj_PHPExcel = $objReader->load($file_name, $encode = 'utf-8');
// echo "<pre>";
$excel_array = $obj_PHPExcel->getsheet(0)->toArray(); //轉換爲數組格式
//array_shift($excel_array); //刪除第一個數組(標題);
$data = [];
foreach ($excel_array as $k => $v) {
//$data[$k]['name'] = $v['0'];
$data[$k]['parent_id'] = $v['1'];
//$data[$k]['address'] = $v['2'];
$data[$k]['name_zh'] = $v['3'];
$data[$k]['name_en'] = $v['4'];
$data[$k]['code_number'] = $v['6'];
$data[$k]['code_en'] = $v['7'];
}
//var_dump($data);
//批量插入數據
$success = Db::name('area')->insertAll($data);
echo '數據添加成功';
}else{
// 上傳失敗獲取錯誤信息
echo $file->getError();
}
}