2

PHP を使用して MYSQL データベースにクエリを実行しており、データを Excel ファイルに出力しようとしています。

私はphpexcel、csvなどを使用しました。それぞれでデータをExcelファイルに正常に出力できましたが、Excelで転置できないようです(転置-すべての列を行に反転し、行を列に反転します) )

役立つチュートリアルが見つかりません。

私の質問は、php を使用して MYSQL からこれらの行と列を転置し、それらを Excel ファイルにインポートする方法はありますか?

ありがとう!

コード:

exportMysqlToCsv($tablename,$tokenmain, $id);
function exportMysqlToCsv($tablename,$tokenmain, $id, $filename = 'Results.csv'){
    $sql_query = "select * from $tablename where token=1";

  // Gets the data from the database
   $result = mysql_query($sql_query);

    $f = fopen('php://temp', 'wt');
    $first = true;

//trying to transpose the data 
function transpose($array) {
    array_unshift($array, null);
    return call_user_func_array('array_map', $array);}

//inserting it into the excel file  
  while ($row = mysql_fetch_assoc($result)) {

        if ($first) {

            fputcsv($f, array_keys($row));

            $first = false;

         }

      fputcsv($f, $row);
    }
} //end while

データベースのサンプル:

=======================================
|  Male/female  |    Favorite artist  |
=====+========+===============+=======|
|    F          | Britney Spears      |
|-------------------------------------|

私はそれをどのように見せたいですか:

=====================================
|Question          |  Answer        |
=====+========+===============+=====|
|   Male/female    |   F            |
|----+--------+---------------+-----|
| Favorite artist  | Britney Spears |
|----+--------+---------------+-----|

大きな注意:データベースを変更したり、PHP で配列をハードコーディングしたりする必要はありません。すべてを動的にしたいのですが、データベースは現状のままです

4

1 に答える 1

0

私の質問に答えるために、これはPHPExcelを使用した私のコードです:

$col=1; // 1-based index
while($row_data = mysql_fetch_assoc($result)) {

$row= 1;

    foreach ($row_data as $key=>$value) {

$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, $row, $value);
$row++;
    }
    $col++;

}

$row=1;
while($row_data = mysql_fetch_assoc($result2)) {
$col=0;

    foreach($row_data as $value) {

   $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, $row, $value);
        $row++;

    $col++;}
}

列 (col) と行 (row) を切り替えて、データベースの列が Excel ファイルの行になり、行から列への行も同じになるようにします。

于 2012-11-08T21:52:02.243 に答える