Excel 报告中的数字显示不正确

Excel 报告中的数字显示不正确

在此处输入图片描述

在 excel 报告生成中,数字显示为 7.70225E+11,但它应该显示为 770225145579。请有人帮忙解决这个问题。我的代码是,

<?php

include("connection.php");

if(isset($_POST['submit']) && $_POST['submit']=="Download")
    {
    $payor_code = $_POST['payor_code'];
        $corp_code= $_POST['corp_code'];
        $pro_type = isset($_POST['product_type']);
        $submit_date = $_POST['sub_date'];

 $sql= oci_parse($conn, "select * from members ");

oci_execute($sql);
$dat = date("d/m/Y");

    $filename = "Report_$dat";

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

$header = array(
    "ReceivedDate",
    "SubmissionDate",
    "PatientName",
    "PatientIC",
    "PrincipalName",
    "PrincipalIC",
    "ClaimNo"

       );

$fp = fopen('php://output', 'w');
fputcsv($fp, $header);

//$incr = 0;
while($row = oci_fetch_array($sql)) {

    $name = $row['RECEIVED_DATE'];
    $email = $row['SUBMISSION_DATE'];
    $mobile = $row['PATIENT_NAME'];
    $address = $row['NRIC_ID'];
    $city = $row['PRINCIPAL_NAME'];
    $state = $row['PRINCIPAL_NRIC'];
    $pincode = $row['CLAIMS_ID'];

        $fields = array ($name, $email, $mobile, $address,$city,$state,$pincode);

       fputcsv($fp, $fields);
  }
}
?>

请解决这个问题。下载 Excel 报告后,我必须获得正确的输出。我不想做任何手动更改。

答案1

您在这里有几个选择(尽管您标记的数字看起来更像是唯一 ID,而不是数字)。您可以:

  1. 手动扩展单元格宽度,看看这是否是问题的根源

  2. 键入ctrl 1,转到 excel 选项,然后将 PatientIC 和 PrincipalIC 列中的数字类型更改为一致的类型

在此处输入图片描述

  1. (如果 1 和 2 都失败)确认创建 Excel 电子表格的源数据或流程是否准确或以一致的格式提供/生成数据

我最担心的是,不同的单元格、行和列应用了不同的格式。例如,单元格 A5 和 A6 都表示三月,但日期格式却不同。这可能是 PatientIC 和 PrincipalIC 列中的问题。

答案2

您可以将值设置为字符串,同时将其添加到 excel。这将阻止整数转换为科学计数法。查看此线程PHP Excel - 正确格式。要了解为什么会发生这种情况,请查看此网址为什么 Excel 将长数字字符串视为科学计数法

答案3

试试这个代码,它对我有用:

$objPHPExcel
   ->getActiveSheet()
   ->getCellByColumnAndRow($col, $row)
   ->setValueExplicit($value, PHPExcel_Cell_DataType::TYPE_STRING);

还有祝你好运 !

相关内容