2017-12-08 8 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 
    }, 
] 

行私のExcelシート開始17時 - 第1の目的は、行17に入力されるように、アレイ内の第二の目的は、ように行18に入力されたとされます。しかし、私が追加したい列は互いに隣り合っているわけではないので、ループするのは難しいです。たとえば、最初のオブジェクトの名前フィールドはC17に、年齢フィールドはF17に、other_infoフィールドはJ17に、my_infoはL17にそれぞれ入力する必要があります。 2番目のオブジェクトは同じ列に入力されますが、次の行などに入力されます。

私は配列をループしてみましたが、列をスキップすることはできません。連続する列と行に追加するだけです。

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

誰でも私にこれに関するいくつかのガイダンスを与えることができますか?とても有難い!

答えて

1

この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など)に余分なフィールドがありました。この回答は正しい@Chris助けてくれてありがとう – user

関連する問題