PHPExcel设置自动列宽
生活随笔
收集整理的這篇文章主要介紹了
PHPExcel设置自动列宽
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
代碼方式一 使用strlen與iconv?
$str_a='aaaaaaaa'; $len_a = strlen(iconv('utf-8','gb2312',$str_a))+2; $sheet->setCellValue("A1",$str_a); $sheet->getColumnDimension("A")->setWidth($len_a);excel打開時單元格寬度應該是按照字符寬度設置, excel跟隨系統是用gbk編碼,英文占1字符,漢字占2字符, 開發環境一般都是utf-8, 理論上獲取單元格內容字符串的gbk字符長度,就是對應單元格最適應寬度。 實測發現會這樣設置單元格會有點緊, 不適合觀感不美觀,所以在字符串長度上加2個字符長度,效果比較好。 <?php include "../Classes/PHPExcel.php";$dir=__DIR__; $excel=new PHPExcel(); //獲取sheet $sheet=$excel->getActiveSheet(); //設置標題 $sheet->setTitle("demo"); $str_a="aaaaaaaaaaaaa"; $str_b='b'; $len_a = strlen(iconv('utf-8','gb2312',$str_a)); $len_b = strlen(iconv('utf-8','gb2312',$str_b)); //設置內容 $sheet->setCellValue("A1",$str_a)->setCellValue("B1",$str_b); //設置列寬 $sheet->getColumnDimension("A")->setWidth($len_a); $sheet->getColumnDimension("B")->setWidth($len_b); //生成文件 $file=PHPExcel_IOFactory::createWriter($excel,"Excel2007"); //保存文件 $file->save($dir.'aaaaaaa.xlsx');代碼方式二?直接使用strlen
// 先獲取字符串的長度 $len = strlen('xxxxx')+2 // 獲取第A行,設置寬度 $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth($len); <?php include "../Classes/PHPExcel.php"; $dir=__DIR__; $excel=new PHPExcel(); //獲取sheet $sheet=$excel->getActiveSheet(); //設置標題 $sheet->setTitle("demo"); $str_a="aaaaaaaaaaaaa"; $str_b='b'; $len_a = strlen($str_a)+2; $len_b = strlen($str_b)+2; //設置內容 $sheet->setCellValue("A1",$str_a)->setCellValue("B1",$str_b); //設置列寬 $sheet->getColumnDimension("A")->setWidth($len_a); $sheet->getColumnDimension("B")->setWidth($len_b); //生成文件 $file=PHPExcel_IOFactory::createWriter($excel,"Excel2007"); //保存文件 $file->save($dir.'aaaaaaa.xlsx');?
總結
以上是生活随笔為你收集整理的PHPExcel设置自动列宽的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 脸书为什么改名 扎克伯格押注元宇宙
- 下一篇: 桂林银行是国企还是私企 设立了多家分支