2012-12-13 10 views
31

Tôi hiểu rằng tôi cần phải viết một vòng lặp mà tôi sử dụng SetCellValue('cell_name', 'value'); nhưng có một phương pháp trong PHPExcel mà chỉ chấp nhận một mảng duy nhất và viết rằng vào một hàng bảng Excel?Có một phương thức trong PHPExcel để viết một mảng PHP trực tiếp vào một hàng không?

Cái gì như:

 
$testArray = array('testcelltext1', 'testcelltext2', testcelltext3'); 
PHPExcel::writeArraytoRow($testArray); 
//do the other PHPExcel stuff to actually write the file 
. 
. 
. 
// outputs an excel file in which the PHP array was written to the first row 

tôi không thể tìm thấy một cái gì đó như thế trong tài liệu đi kèm, nhưng điều đó chỉ có thể là kỹ năng tìm kiếm PDF xấu ...

Trả lời

65
$objPHPExcel->getActiveSheet()->fromArray($testArray, NULL, 'A1'); 

Nó được sử dụng trong một số của các ví dụ

Đối số như được mô tả trong tài liệu API

/** 
* Fill worksheet from values in array 
* 
* @param array $source     Source array 
* @param mixed $nullValue    Value in source array that stands for blank cell 
* @param string $startCell    Insert array starting from this cell address as the top left coordinate 
* @param boolean $strictNullComparison Apply strict comparison when testing for null values in the array 
* @throws Exception 
* @return PHPExcel_Worksheet 
*/ 
+0

Cảm ơn bạn, hoạt động hoàn hảo. Cảm ơn cũng cho PHPExcel, những gì một nỗ lực lớn và hữu ích. Một câu hỏi nữa: điều này có hỗ trợ mảng 2D không (điều này có thể hỏi quá nhiều!)? Tôi đã cố gắng lồng một mảng bên trong một trong các phần tử mảng và tôi nhận được một tham số 'không hợp lệ đối với lỗi foreach'. Bất kỳ đối số khác tôi cần phải vượt qua, có thể (hy vọng! :))? –

+8

Nó hỗ trợ mảng 2d: mảng 1d được coi là một hàng duy nhất, mảng 2-d được coi là một dải ô; nhưng chúng phải là các mảng thông thường (nghĩa là cùng một số cột trong mỗi hàng) ... Các ví dụ 33chartcreate và 10autofilter-selection đều sử dụng các mảng 2d –