簡體   English   中英

從 PHP 數組創建 XLS 文件(行和列干擾)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM