[英]Creating XLS file from PHP arrays (rows and columns are interfering)
首先,我使用這個類通過 XML 創建 excel 文件: https : //github.com/oliverschwarz/php-excel
我想導出到 Excel 的標題;
$headers = array("A","B","C");
我想導出到 Excel 的數組;
$example = array("a1","a2","a3");
$example2 = array("b1","b2","b3");
$example3 = array("c1","c2","c3");
然后我將我的數組與這些代碼合並為 1 個數組;
$result = array($headers,$example,$example2,$example3);
最后,我開始行動;
$xls = new Excel_XML('UTF-8', false, 'Test');
$xls->addArray($result);
$xls->generateXML('xls-file');
之后,這些類按預期創建了一個 XLS 文件; 由於我的數組類型,該 XLS 文件方案出乎意料。 所以我需要幫助我的朋友,我該怎么辦? 謝謝...
輸出就是這樣;
A_|__B__|_C
A1|__A2_|_A3
B1|__B2_|_B3
C1|__C2_|_C3
我想要的輸出就是這樣;
A_|__B__|_C
A1|__B1_|_C1
A2|__B2_|_C2
A3|__B3_|_C3
您可以使用array_map()
重新組織結果中的數據,然后使用array_unshift()
將標題推送到數組的開頭...
$result = array_map(null, $example, $example2, $example3);
array_unshift($result, $headers);
print_r($result);
這會給。
Array
(
[0] => Array
(
[0] => A
[1] => B
[2] => C
)
[1] => Array
(
[0] => a1
[1] => b1
[2] => c1
)
[2] => Array
(
[0] => a2
[1] => b2
[2] => c2
)
[3] => Array
(
[0] => a3
[1] => b3
[2] => c3
)
)
如果您的數據是作為數組創建的,那么下面會做同樣的事情,將數組傳入 using ...
將每個元素作為新參數傳入...
$example = [ ["a1","a2","a3"], ["b1","b2","b3"], ["c1","c2","c3"]];
$result = array_map(null, ...$example);
array_unshift($result, $headers);
print_r($result);
每個數組在 Excel 中直接變成一行。 因此,您需要創建數組結構以匹配 Excel 中所需的行:
$example = array("a1","b2","c1");
$example2 = array("a2","b2","c2");
$example3 = array("a3","b3","c3");
如果實際上這些數組是從其他一些數據源生成的(而不是硬編碼,如您的問題所示),那么您必須修改生成它們的代碼,以便創建正確的布局。 由於您沒有共享任何類似的代碼,因此我無法直接幫助處理這樣的過程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.