0

Ty mail2bapi,:)

SimpleXLSX在代码中使用下面的示例脚本我添加了这个$x = number_format($r);

只需要数字有千位分隔符 252252732 到 252,252,732

IM 不擅长 PHP,非常感谢任何帮助

加上一些列是空的,日期像这样 23.01.2020,我认为这是导致问题的原因

XMLS 文件 simplexlsx

错误:number_format() 期望参数 1 为双精度,数组中给出

错误:内爆():传递的参数无效

<?php
require_once 'SimpleXLSX.php';

if ( $xlsx = SimpleXLSX::parse('book.xlsx') ) {
    echo '<table border="1" cellpadding="3" style="border-collapse: collapse">';
    foreach( $xlsx->rows() as $r ) {
        $x = number_format($r);
        echo '<tr><td>'.implode('</td><td>', $x ).'</td></tr>';
    }
    echo '</table>';
    // or $xlsx->toHTML();  
} else {
    echo SimpleXLSX::parseError();
}

?>
4

1 回答 1

0

您没有正确使用 number_format() 函数。更改以下代码 -

$x = number_format($r);

$x = number_format($r, 0, ".", ",");

欲了解更多信息,请访问PHP number_format

编辑

正如您提到的,您的行可能有不同类型的值,最好检查数值的值。

试试这个代码

<?php
require_once 'SimpleXLSX.php';

if ( $xlsx = SimpleXLSX::parse('book.xlsx') ) {
     echo '<table border="1" cellpadding="3" style="border-collapse: collapse">';
    foreach( $xlsx->rows() as $rowValue ) {
       echo "<tr>";
       // As $rowValue is an array  
       foreach($rowValue as $value){
          // Check for number_format
          if(is_numeric($value)){
            $x = number_format($value, 0, ".", ",");
            echo "<td>".$x."</td>";
          }else{
            echo "<td>".$value."</td>";
          }
       }
       echo "</tr>";  
    }
    echo "</table>";

    // or $xlsx->toHTML();  
} else {
    echo SimpleXLSX::parseError();
}

希望这些能解决您的问题。

于 2020-02-14T05:23:47.543 回答