1

私はphpを使用しており、simplexlsx.classを使用してExcelファイルを読み取りました。行ごとにすべての値を取得できます。ただし、データベースにそれらの値を保存できるように、セルごとの値を取得する方法がわかりません。

次のコードを試して、セルごとの値を出力しました。しかし、これは印刷用です。

for($j=1; $j <= $xlsx->sheetsCount();$j++){

    echo '<pre>';
    print_r( $xlsx->rowsEx($j) );
    echo '</pre>';
}

$ xlsx-> rowsEx($ j)は、配列形式[name、value、href]です。私はその価値にのみ興味があります。これがrowsExのsimplexlsx.classのコードです。

function rowsEx( $worksheet_id = 1 ) {
    $rows = array();
    $curR = 0;
    if (($ws = $this->worksheet( $worksheet_id)) === false)
        return false;
    foreach ($ws->sheetData->row as $row) {

        foreach ($row->c as $c) {
            list($curC,) = $this->_columnIndex((string) $c['r']);
            $rows[ $curR ][ $curC ] = array(
                'name' => (string) $c['r'],
                'value' => $this->value($c),
                'href' => $this->href( $c ),
            );
        }
        $curR++;
    }
    return $rows;

}

どうすれば値を取得できますか?あなたの助けをいただければ幸いです。ありがとうございました。

4

1 に答える 1

1

コードはセルを読み取り、データベースに挿入する必要があります。var_dump中身を確認したい場合は、行のコメントを外すことができます$r。このコードは、データをデータベースに安全に挿入できるかどうかをチェックしないことに注意してください。

$mysql   = mysql_connect('localhost', 'mysql_user', 'mysql_password');

list($num_cols, $num_rows) = $xlsx->dimension();

foreach( $xlsx->rows() as $r ) {
    //var_dump($r);
    $sql = "INSERT INTO `aTable` (`col1`, `col2`, `col3`)
        VALUES ('" . $r[0] . "', '" . $r[1] . "', '" . $r[2] . "')";        
    mysql_query($sql);
}
mysql_close($mysql);
于 2012-11-11T21:04:41.423 に答える