首先,我使用此类通过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
答案 0 :(得分:1)
您可以使用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
)
)
如果您将数据创建为数组数组,则以下操作将执行相同的操作,使用...
将该数组作为新参数传递给每个元素...
$example = [ ["a1","a2","a3"], ["b1","b2","b3"], ["c1","c2","c3"]];
$result = array_map(null, ...$example);
array_unshift($result, $headers);
print_r($result);
答案 1 :(得分:0)
每个数组在Excel中直接变成一行。因此,您需要创建数组结构以匹配Excel中所需的行:
$example = array("a1","b2","c1");
$example2 = array("a2","b2","c2");
$example3 = array("a3","b3","c3");
如果实际上这些数组是从某些其他数据源生成的(而不是如您的问题所示那样被硬编码),那么您将必须修改生成它们的代码,以便创建正确的布局。由于您没有共享这样的代码,因此我无法直接帮助您完成这样的过程。