首页 > 解决方案 > 使用 PHP 将整个 excel 文件显示为表格

问题描述

我有一个包含多张工作表的 excel 文件。我想使用 PHP 将 excel 文件中的数据显示为表格而不插入数据库。

标签: phphtmlexcel

解决方案


您可以使用 simplexlsx PHP 库来做到这一点

下面是库代码

https://github.com/fahadpatel/simplexlxs.git

<?php

ini_set('error_reporting', E_ALL);
ini_set('display_errors', true);

require_once __DIR__.'/../src/SimpleXLSX.php';

echo '<h1>Read several sheets</h1>';
if ( $xlsx = SimpleXLSX::parse('countries_and_population.xlsx')) {

    echo '<pre>'.print_r( $xlsx->sheetNames(), true ).'</pre>';

    echo '<table cellpadding="10">
    <tr><td valign="top">';

    // output worsheet 1

    $dim = $xlsx->dimension();
    $num_cols = $dim[0];
    $num_rows = $dim[1];

    echo '<h2>'.$xlsx->sheetName(0).'</h2>';
    echo '<table border=1>';
    foreach ( $xlsx->rows( 1 ) as $r ) {
        echo '<tr>';
        for ( $i = 0; $i < $num_cols; $i ++ ) {
            echo '<td>' . ( ! empty( $r[ $i ] ) ? $r[ $i ] : '&nbsp;' ) . '</td>';
        }
        echo '</tr>';
    }
    echo '</table>';

    echo '</td><td valign="top">';

    // output worsheet 2

    $dim = $xlsx->dimension( 2 );
    $num_cols = $dim[0];
    $num_rows = $dim[1];

    echo '<h2>'.$xlsx->sheetName(1).'</h2>';
    echo '<table border=1>';
    foreach ( $xlsx->rows( 2 ) as $r ) {
        echo '<tr>';
        for ( $i = 0; $i < $num_cols; $i ++ ) {
            echo '<td>' . ( ! empty( $r[ $i ] ) ? $r[ $i ] : '&nbsp;' ) . '</td>';
        }
        echo '</tr>';
    }
    echo '</table>';

    echo '</td></tr></table>';
} else {
    echo SimpleXLSX::parseError();
}

推荐阅读