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 回答