データの配列の配列があります。
したがって、基本的な形式は
_$sheet = array(
array(
'a1 data',
'b1 data',
'c1 data',
'd1 data',
),
array(
'a2 data',
'b2 data',
'c2 data',
'd2 data',
),
array(
'a3 data',
'b3 data',
'c3 data',
'd3 data',
)
);
_
配列が渡されたとき、列または行がいくつあるかわかりません。私がやりたいのは、php Excelを使用して、配列からExcelシートを作成することです。
私が見てきたことから、データを設定する唯一の方法は$objPHPExcel->getActiveSheet()->setCellValue('A1', $value);
を使用することです
だから私の質問は
セルをどのようにループしますか?
_AD70
_となる30列と70行が存在する可能性があることを思い出してください。では、どのようにループしますか?
または、配列をシートに変換する組み込み関数はありますか?
次のように配列からデータを設定できます。
$objPHPExcel->getActiveSheet()->fromArray($sheet, null, 'A1');
fromArrayは2D配列で動作します。最初の引数が2D配列である場合、2番目の引数はnull値がある場合に使用するものであり、最後の引数は左上隅があるべき場所です。
それ以外の場合は、データをループする必要があります。
$worksheet = $objPHPExcel->getActiveSheet();
foreach($sheet as $row => $columns) {
foreach($columns as $column => $data) {
$worksheet->setCellValueByColumnAndRow($column, $row + 1, $data);
}
}
$rowID = 1;
foreach($sheet as $rowArray) {
$columnID = 'A';
foreach($rowArray as $columnValue) {
$objPHPExcel->getActiveSheet()->setCellValue($columnID.$rowID, $columnValue);
$columnID++;
}
$rowID++;
}
または
$objPHPExcel->getActiveSheet()->fromArray($sheet);
私の知る限り、PHP Excelを使用してワークシートにデータを入力するときに、最終的なExcelワークシートの高さと幅を知る必要はありません。ネストされたforeachループを使用してすべてを読み取ることができます。ネストされた配列と適切な変数を使用してセル参照を作成し、ワークシートに追加します。プラグインがサイズを処理します。