php - 如何获取excel文件中每个单元格的值,然后将其保存到mysql数据库中?

标签 php mysql database excel xlsx

我正在使用 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]。我只对值(value)感兴趣。这是 simplexlsx.class 中用于 rowsEx 的代码。

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;

}

我应该如何获取值?非常感谢您的帮助。谢谢。

最佳答案

代码应读取单元格并将其插入数据库。如果您想查看 $r 中的内容,可以取消注释 var_dump 行。请注意,代码不会检查数据是否可以安全地插入数据库。

$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);

关于php - 如何获取excel文件中每个单元格的值,然后将其保存到mysql数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13332234/

相关文章:

sql - 我应该提交还是回滚读取事务?

sql - PL/SQL - dbms 输出立即执行的结果

mysql - Sqoop 导出到 Aurora RDS 的速度非常慢

使用 MySQL 代理的 MySQL 故障转移

php - 在 Laravel 5.5 中使用 Carbon 来比较 2 个日期

php - 在扩展前的 url 末尾 append 字符串

javascript - 在浏览器 (F11) 中检测到全屏模式时使标题消失

javascript - 如何在jquery中验证后提交表单

mysql - 如何从左连接中获取前 n 个不同的列值?

mysql - 具有 3 个表引用的 SQL 连接查询