之前寫過一篇【PhpSpreadsheet電子表格PHP匯出excel排版範例】的工作心得 https://neohsuxoops.blogspot.com/2020/09/phpspreadsheetphpexcel-xoops.html 但是發現一個問題,就是excel的列標一定是英文字母A~Z組合,例如: //表頭區 $worksheet ->setCellValue('A1', 'Product') ->setCellValue('B1', 'Quantity') ->setCellValue('C1', 'Unit Price') ->setCellValue('D1', 'Price'); 如果吧C1刪除剩下ABD,匯出Excel還是會空一格C的欄位,必須要重編A~Z的列標,實在不方便,最好的方法就是以數字增加自動生成英文,這樣的好處是如果要刪除欄位或是需要設定匯出條件某些欄位不匯出時,就不會產生空欄位的問題,方法如下: 1、先在模組的function.php中置入以下的function function IntToChr($index, $start = 65) { $str = ''; if (floor($index / 26) > 0) { $str .= IntToChr(floor($index / 26)-1); } return $str . chr($index % 26 + $start); } 這樣只要輸入數字就能產生英文 echo IntToChr(0); 輸出:A echo IntToChr(1); 輸出:B 再來就是修改Excel程式部分,吧原本英文字改為IntToChr($i),然後帶入$i值產生數字->帶出英文字母 //表頭區 $i=0; $worksheet ->setCellValue(''. IntToChr($i) .'1', 'Product'); //A1 $i++; $worksheet ->setCellValue(...