在 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,而不是数字)。您可以:
手动扩展单元格宽度,看看这是否是问题的根源
键入
ctrl 1
,转到 excel 选项,然后将 PatientIC 和 PrincipalIC 列中的数字类型更改为一致的类型
- (如果 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);
还有祝你好运 !