2017-12-08 17 views
0

현재 PHPExcel 템플릿의 행을 나타내는 각 객체의 의도에 따라 데이터베이스의 객체 배열을 가져옵니다. 다음 데이터가 내 엑셀 시트 개시에PHPExcel 템플릿에 객체 배열 추가

[ 
    { 
     name: test, 
     age: test, 
     other_info: test, 
     my_info: test 
    }, 
    { 
     name: test, 
     age: test, 
     other_info: test, 
     my_info: test 
    }, 
    { 
     name: test, 
     age: test, 
     other_info: test, 
     my_info: test 
    }, 
] 

행을 17 - 상기 제 1 목적은 행 (17)에 입력 될 것이고, 어레이의 제 2 목적은 행 (18)에 입력 등 것 . 그러나 내가 추가하고자하는 열은 서로 가깝기 때문에 순환하기가 어렵습니다. 예를 들어 첫 번째 객체의 이름 필드는 C17에 입력해야하고 연령 필드는 F17에 입력하고 other_info 필드는 J17에 입력하고 my_info는 L17이어야합니다. 그런 다음 두 번째 객체는 동일한 열에 입력되지만 다음 행에 입력됩니다.

나는 배열을 통해 루핑을 시도했다. 그러나 그것은 열을 건너 뛰는 것을 허락하지 않고, 단지 연속하는 열과 행에 추가한다.

foreach ($array as $rowArray) { 
    $columnID = 'C'; 
    $rowID = 17; 
    foreach ($rowArray as $columnValue) { 
     $objPHPExcel->getActiveSheet()->setCellValue($columnID.$rowID, $columnValue); 
     $rowID++; 
    } 
} 

아무에게도 이것에 대한 지침을 줄 수 있습니까? 매우 감사!

답변

1

이것보십시오 : 나의 이해는 그것의 진정한 섹션한다고하는 것이 있기 때문에

$json = '[ 
      { 
       "name": "name1", 
       "age":"age1", 
       "other_info":"other_info1", 
       "my_info":"my_info1" 
      }, 
      { 
       "name": "name2", 
       "age": "age2", 
       "other_info": "other_info2", 
       "my_info": "my_info2" 
      } 
     ]'; 

$phpExcelObject = $this->get('phpexcel')->createPHPExcelObject(); 
$cells = ['name' => 'C', 'age' => 'F', 'other_info' => 'J', 'my_info' => 'L']; 
$array = json_decode($json, true); 

$rowID = 17; 
foreach($array as $rowArray) { 
    foreach ($rowArray as $index => $columnValue) { 
     $col = $cells[$index].$rowID; 
     $phpExcelObject 
      ->getActiveSheet() 
      ->setCellValue((string)$col, $columnValue); 
    } 
    $rowID++; 
} 
+0

내가 오류를 얻고있다 ... 이상해 ") (json_decode 매개 변수 1, 배열이 주어진 문자열이 될 것으로 기대" 문자열과 반대로 배열. 어떤 생각이 그것을 일으킬 수 있습니까? – user

+0

json_decode()는 문자열을 첫 번째 매개 변수로 기대하며 [공식 문서] (http://php.net/manual/en/function.json-decode.php)를 살펴보십시오. 귀하의 데이터는 약간 이상하고, 유효한 json이 아니지만 (그것이 있어야하는 것처럼 보입니다) 객체의 PHP 배열이 아닙니다. 제 json 문자열과 비교해보십시오. – Chris

+0

내 문제가 발생하여 실제 데이터 (예 : 'ID')에 방해가되는 필드가 추가되었습니다. 이 답변은 정확합니다 도움을 주셔서 감사합니다 @ 크리스 – user