0

phpexcel.codeplex.com から PHPExcel クラスを使用してスプレッドシートを作成しようとしましたが、状況が発生し、何が問題なのかわかりません。

スプレッドシートの「名前、価格」、「在庫」に挿入するデータベースの3つのフィールドがあります。

問題は、テーブルの最初のフィールドである製品名しか取得できないことです。

これは私が扱っているコードです:

$sql = "商品名、価格、在庫を選択";

$objPHPExcel = new PHPExcel();

$res = $con->query( $sql );

// First row
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow( 'name', 1, 'Name' );
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow( 'price', 1, 'Price' );
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow( 'stock', 1, 'Stock' );

// Other rows
$i = 2;
while( $row = $res->fetch( PDO::FETCH_ASSOC ) ) {
    foreach( $row as $col => $data ) {
        $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow( $col, $i, $data );
    }
    $i++;
}

// Redirect output to a client web browser (Excel5)
header( 'Content-Type: application/vnd.ms-excel' );
header( 'Content-Disposition: attachment;filename="report.xls"' );
header( 'Cache-Control: max-age=0' );

$objWriter = PHPExcel_IOFactory::createWriter( $objPHPExcel, 'Excel5' );
$objWriter->save( 'php://output' );
exit;

欠けているものが見えない...

前もって感謝します!

4

1 に答える 1

2
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow( 'name', 1, 'Name' ); 

列の引数は数値である必要があります:0 =列A、1 =列Bなど。文字列を使用しています。文字列はタイプによって数値0にジャグリングされるため、すべてが最初の(0)列に書き込まれます。 、すでにそこにあるものを上書きする....最後の(ストック)列の値を単に取得しているのではないことに驚いています

于 2012-09-28T14:18:11.400 に答える