【问题标题】:Phone Number Automatically Add When Export To Excel File导出到 Excel 文件时自动添加电话号码
【发布时间】:2017-05-08 07:04:00
【问题描述】:

我的数据库中有 +82-2-573-3585,但是当我使用以下代码导出 .xls 文件时,数字下方会自动添加,因此结果为-4078。如何使我的 excel 文件中的电话号码与我的数据库电话号码相同?

<?php  
    $conn = new mysqli('localhost', 'root', '');  
    mysqli_select_db($conn, 'databasename');  

    $setSql = "SELECT contact_number FROM supplier";  
    $setRec = mysqli_query($conn, $setSql);  

    $columnHeader = 'SUPPLIERS'; 
    $columnHeader = "Mobile Number" . "\t";  

    $setData = '';  

    while ($rec = mysqli_fetch_row($setRec)) {  
        $rowData = '';  
        foreach ($rec as $value) {  
            $value = '"' . $value . '"' . "\t";  
            $rowData .= $value;  
        }  
        $setData .= trim($rowData) . "\n";  
    }  


    header("Content-type: application/octet-stream");  
    header("Content-Disposition: attachment; filename=Machine_Supplier.xls");  
    header("Pragma: no-cache");  
    header("Expires: 0");  

    echo ucwords($columnHeader) . "\n" . $setData . "\n";  
?>  

【问题讨论】:

  • 确保用引号括起来,以便将其视为字符串;如果您使用 PHP 的内置 fputcsv() 函数而不是错误的自制替代品,那么它会自动为您执行此操作
  • 附言。您的问题与 PHPExcel 无关,这是一个 PHP 库,用于处理真正的原生格式电子表格/excel 文件
  • 对不起,我只是更改或删除了标签先生。但是在使用以下代码添加带有我的电话号码的 qoutes 时。先生,我该怎么做?? @马克贝克

标签: php excel export-to-excel export-to-csv


【解决方案1】:

请尝试以下代码。

<?php  
    $conn = new mysqli('localhost', 'root', '');  
    mysqli_select_db($conn, 'databasename');  

    $setSql = "SELECT contact_number FROM supplier";  
    $setRec = mysqli_query($conn, $setSql);  

    $columnHeader = 'SUPPLIERS'; 
    $columnHeader = "Mobile Number" . "\t";  

    $setData = '';  

    while ($rec = mysqli_fetch_row($setRec)) {  
        $rowData = '';  
        foreach ($rec as $value) {  
            $value = '"' . $value . '"' . "\t";  
            $rowData .= strval($value);  
        }  
        $setData .= trim($rowData) . "\n";  
    }  


    header("Content-type: application/octet-stream");  
    header("Content-Disposition: attachment; filename=Machine_Supplier.xls");  
    header("Pragma: no-cache");  
    header("Expires: 0");  

    echo ucwords($columnHeader) . "\n" . $setData . "\n";  
?> 

希望有效果

【讨论】:

  • 您能否通过删除 header 函数来尝试您的代码,以便正常打印所有数据。所以我们可以理解电话号码是否来自db
  • 什么都没有发生 -4074 是结果!! + 符号被转换为 = 等号,因此它会自动添加。 @Tristup
  • 请检查您的数据库值,或者您将 table 字段更改为 char
  • 对不起还是-4078。抱歉,@Tristup 先生提出了一个令人心碎的问题。
  • 如果 db 正在存储该数据,那么数据插入或字段类型有问题,正如您描述的值 +82-2-573-3585 它应该存储在任何char字段,如果是integer请将其改为char并恢复值,然后检查。
猜你喜欢
  • 1970-01-01
  • 2015-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多