PhpSpreadsheet 学习和使用
生活随笔
收集整理的這篇文章主要介紹了
PhpSpreadsheet 学习和使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、安裝
?composer require phpoffice/phpspreadsheet
2、 use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; use PhpOffice\PhpSpreadsheet\Style\Alignment; use PhpOffice\PhpSpreadsheet\Style\Border; use PhpOffice\PhpSpreadsheet\Style\Font; use PhpOffice\PhpSpreadsheet\Style\Color; use PhpOffice\PhpSpreadsheet\Style\Fill; use PhpOffice\PhpSpreadsheet\IOFactory; 3、數據庫導出到excel表中 //導出測試 public function daochu() {$spreadsheet = new Spreadsheet();$worksheet = $spreadsheet->getActiveSheet();//設置工作表標題名稱$worksheet->setTitle('車型品牌');//表頭//設置單元格內容$worksheet->setCellValueByColumnAndRow(1, 1, '車型品牌表');$worksheet->setCellValueByColumnAndRow(1, 2, 'ID');$worksheet->setCellValueByColumnAndRow(2, 2, '品牌名');$worksheet->setCellValueByColumnAndRow(3, 2, '圖片');$worksheet->setCellValueByColumnAndRow(4, 2, '狀態');//合并單元格$worksheet->mergeCells('A1:D1');//字體設置$styleArray = ['font' => ['bold' => true, //字體加粗'color' => [ 'rgb' => 'FF6A6A' ], //字體顏色'strikethrough' => true, //刪除線'italic' => true, //傾斜'underline' => Font::UNDERLINE_DOUBLE,],'alignment' => ['horizontal' => Alignment::HORIZONTAL_CENTER,],];//設置單元格樣式$worksheet->getStyle('A1')->applyFromArray($styleArray)->getFont()->setSize(28);$worksheet->getStyle('A2:D2')->applyFromArray($styleArray)->getFont()->setSize(14);//設置字體顏色//$worksheet->getStyle('B2')->getFont()->getColor()->applyFromArray(['rgb' => 'C0FF3E']);//背景色//$worksheet->getStyle('B2')->getFill()->applyFromArray( [ 'fillType' => Fill::FILL_GRADIENT_LINEAR, 'rotation' => 0, 'startColor' => [ 'rgb' => '000000' ], 'endColor' => [ 'argb' => 'FFFFFFFF' ] ] );//設置單元格 自動寬度顯示$spreadsheet->getActiveSheet()->getColumnDimension('C')->setAutoSize(true);$rows = Db::name('cartype_logo')->select();$len = Db::name('cartype_logo')->count();$j = 0;for ($i=0; $i < $len; $i++) {$j = $i + 3; //從表格第3行開始$worksheet->setCellValueByColumnAndRow(1, $j, $rows[$i]['logo_id']);$worksheet->setCellValueByColumnAndRow(2, $j, $rows[$i]['logo_name']);$worksheet->setCellValueByColumnAndRow(3, $j, $rows[$i]['logo_img']);$worksheet->setCellValueByColumnAndRow(4, $j, $rows[$i]['status']);}$styleArrayBody = ['borders' => ['allBorders' => ['borderStyle' => Border::BORDER_THIN,'color' => ['argb' => '666666'],],],'alignment' => ['horizontal' => Alignment::HORIZONTAL_CENTER,],];$total_rows = $len + 2;//添加所有邊框/居中$worksheet->getStyle('A1:D'.$total_rows)->applyFromArray($styleArrayBody);$filename = '品牌表.xlsx';header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');header('Content-Disposition: attachment;filename="'.$filename.'"');header('Cache-Control: max-age=0');$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');$writer->save('php://output'); } 3、excel導入數據庫表匯中 //導入測試 public function daoru() {$reader = IOFactory::createReader('Xls');$reader->setReadDataOnly(TRUE);$spreadsheet = $reader->load('C:\Users\Administrator\Desktop\logo.xls'); //載入excel表格$worksheet = $spreadsheet->getActiveSheet();$highestRow = $worksheet->getHighestRow(); // 總行數$lines = $highestRow - 1;if ($lines <= 0) {exit('Excel表格中沒有數據');}$new = [];for ($row = 2; $row <= $highestRow; ++$row) {$new_logos = $worksheet->getCellByColumnAndRow(1, $row)->getValue(); //品牌名$new_png = $worksheet->getCellByColumnAndRow(2, $row)->getValue(); //圖片地址$new[] = ['logo_name'=> $new_logos,'logo_img'=>$new_png];} $new = []; for ($row = 2; $row <= $highestRow; ++$row) {$new_logos = $worksheet->getCellByColumnAndRow(1, $row)->getValue(); //品牌名$new_png = $worksheet->getCellByColumnAndRow(2, $row)->getValue(); //圖片地址$new[] = ['logo_name'=> $new_logos,'logo_img'=>$new_png];} foreach ($new as $k => $v) {$data['logo_name'] = $v[0];$data['logo_img'] = $v[1];//var_dump($data); die;Db::name('cartype_logo')->insert($data);}echo 'ok';
}
?
?
?
?
?
總結
以上是生活随笔為你收集整理的PhpSpreadsheet 学习和使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 移动机器人资料
- 下一篇: PYTHON贝叶斯推断计算:用BETA先