7

我有这个二维数组,我想使用 PHPExcel 将其导出为 excel 文件。

// create a simple 2-dimensional array
$data = array(
   1 => array ('Name', 'Surname'),
   array('Schwarz', 'Oliver'),
   array('Test', 'Peter')
);

问题是我无法预测数组中键的数量,因此很难使用这种方法

$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->SetCellValue('A1', 'Hello');
$objPHPExcel->getActiveSheet()->SetCellValue('B2', 'world!');
$objPHPExcel->getActiveSheet()->SetCellValue('C1', 'Hello');
$objPHPExcel->getActiveSheet()->SetCellValue('D2', 'world!');

我正在尝试生成一个for可以执行此操作的循环,有什么帮助吗?

4

4 回答 4

24

PHPExcel 有一个内置方法,可以通过一个步骤从数组中设置单元格:

$data = array(
    array ('Name', 'Surname'),
    array('Schwarz', 'Oliver'),
    array('Test', 'Peter')
);
$objPHPExcel->getActiveSheet()->fromArray($data, null, 'A1');
于 2013-10-03T09:50:11.233 回答
3

为此,我将使用该功能

$objPHPExcel->getActiveSheet()->SetCellValueByColumnAndRow($column, $row, $text)

并在数组索引上运行 foreach。列从 0 开始,行从 1 开始。

于 2013-10-03T09:36:49.113 回答
1

这可能会有所帮助:

$i = 0;
foreach ($data as $key => $value){
    $objPHPExcel->getActiveSheet()->SetCellValue(PHPExcel_Cell::stringFromColumnIndex($i).'1', $key);
    $objPHPExcel->getActiveSheet()->SetCellValue(PHPExcel_Cell::stringFromColumnIndex($i+1).'2', $value);
    $i++;
}
于 2013-10-03T09:34:33.503 回答
0

你可以在遍历数组时使用 foreach ,它会给你 key=>value 对。

如果期望有什么不同,请告诉我。

于 2013-10-03T09:34:03.193 回答