如何在原生PHP中導出Excel文件并設置列寬?

如何在原生PHP中導出Excel文件并設置列寬?

原生php導出excel文件時,如何精確控制列寬是常見問題。本文將詳細講解如何使用PHP代碼導出Excel文件并設置列寬,解決導出數據列寬不一致的問題。

例如,您需要導出“支付寶賬號”、“姓名”、“打款金額”三列數據,并分別設置其列寬。直接使用fputcsv函數無法實現列寬設置。我們需要借助PHPExcel庫。

改進方法:使用PHPExcel庫

以下代碼演示如何使用PHPExcel庫設置列寬:

立即學習PHP免費學習筆記(深入)”;

// 導入PHPExcel類庫 (請確保已正確安裝PHPExcel) require_once 'Classes/PHPExcel.php'; // 替換為PHPExcel庫的實際路徑  // 創建PHPExcel對象 $objPHPExcel = new PHPExcel();  // 設置列寬 (單位:字符寬度) $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(20); // 支付寶賬號 $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(15); // 姓名 $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(10); // 打款金額  // 設置表頭 $title = array('支付寶賬號','姓名','打款金額'); $objPHPExcel->getActiveSheet()->fromArray($title, null, 'A1');  // 填充數據 $row = 2; foreach($list as $val){     $data = array(         $val['alipay_acount'],         $val['alipay_real_name'],         $val['total_check_che']     );     $objPHPExcel->getActiveSheet()->fromArray($data, null, 'A'.$row);     $row++; }  // 保存為Excel 2007格式 (.xlsx) $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="文章信息統計'.date('ymdHis').'.xlsx"'); header('Cache-Control: max-age=0'); $objWriter->save('php://output');

此代碼首先引入PHPExcel庫,然后創建PHPExcel對象,使用getColumnDimension()方法分別設置’A’、’B’、’C’列的寬度。之后,使用fromArray()方法填充數據,最后使用Excel2007寫入器將數據保存為xlsx格式并輸出。

批量設置列寬 (可選)

如果需要批量設置列寬,可以使用循環

$cols = range('A', 'Z'); // 設置A到Z列的寬度 foreach ($cols as $col) {     $objPHPExcel->getActiveSheet()->getColumnDimension($col)->setWidth(15); // 設置所有列寬為15 }

這個循環可以根據需要修改列的范圍和寬度。

總結

通過使用PHPExcel庫,我們可以輕松地控制導出Excel文件的列寬,從而獲得更好的數據展示效果。 請確保已正確安裝并配置PHPExcel庫,并根據實際路徑調整代碼中的require_once語句。 此方法比使用fputcsv更靈活,能更好地滿足各種Excel導出需求。

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享