В генерации отчетов 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. Я не хочу делать какие-либо ручные изменения.

3 ответа3

1

У вас есть несколько вариантов здесь (хотя отмеченные вами номера больше похожи на уникальные идентификаторы, чем на цифры). Вы можете потенциально:

  1. Вручную увеличьте ширину ячейки, чтобы увидеть, является ли это источником проблемы.

  2. Введите ctrl 1 , перейдите к параметрам Excel и измените тип числа в столбцах PatientIC и PrincipalIC на другой тип, который соответствует

  1. (Если и 1, и 2 не выполнены) Убедитесь, что исходные данные или процесс, который создал электронную таблицу Excel, предоставляют / генерируют данные точно или в согласованном формате.

Моя непосредственная проблема заключается в том, что существуют разные форматы, применяемые к разным ячейкам, строкам и столбцам. Например, ячейки A5 и A6 относятся к месяцу марта, но форматирование даты отличается. Это может быть проблемой в столбцах PatientIC и PrincipalIC.

0

Попробуйте этот код, он работает для меня:

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

И удачи !

0

Вы можете установить значение в виде строки, добавив его в Excel. Это предотвратит преобразование целого числа в научное обозначение. Проверьте эту тему PHP Excel - правильный формат. Чтобы понять, почему это происходит, проверьте этот URL. Почему Excel рассматривает длинные числовые строки как научную нотацию?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .