Строка переводится в int в Excel отчете на PHP

172
12 февраля 2018, 04:53

Делаю отчет из MySQL в Excel на PHP.
Длинная строка из чисел 758456123548 переводится в int и в Excel, это поле что-то типа 7.5945e11.
Мне нужно, чтобы оно отображалось как строка. Вот скрипт:

<?php
    header('Content-Type: text/html; charset=utf-8'); 
    header("Content-type: application/octet-stream");  
    header("Content-Disposition: attachment; filename=User_Detail_Report.xls");  
    header("Pragma: no-cache");  
    header("Expires: 0");
?>      
    <?php          
    include 'database_connect.php';
    $setSql = "SELECT `imya`,`familiya`,`iin`,`email` FROM `Ankety`";  
    $setRec = mysqli_query($mysqli, $setSql);  
    $columnHeader = '';  
    $columnHeader = "Имя" . "\t" . "Фамилия" . "\t" . "Иин" . "\t" . "email" . "\t";  
    $setData = '';
    while ($rec = mysqli_fetch_row($setRec)) {  
        $rowData = '';  
//          var_dump($rec);
        foreach ($rec as $value) {
            $value = '"' . (string)$value . '"' . "\t";
            $rowData .= $value; 
        }
        $setData .= trim($rowData) . "\n";  
    }  

    echo ucwords($columnHeader) . "\n" . $setData . "\n";  
    ?>  
Answer 1
function float_to_string($float) {
$string = (string)$float;
if (preg_match('~\.(\d+)E([+-])?(\d+)~', $string, $matches)) {
    $decimals = $matches[2] === '-' ? strlen($matches[1]) + $matches[3] : 0;
    $string = number_format($float, $decimals,'.','');
}
return $string;

}

Источник

READ ALSO
yii2 active record сложные запросы

yii2 active record сложные запросы

Есть таблица анкет(polls)Polls относится к одному заказу(orders) и связано с ним по полю order_id

199
Предикат для find_if

Предикат для find_if

Как можно создать предикат с двумя параметрами на входеНапример

210
SetWindowsHookEx + WH_CBT работает не так как должен

SetWindowsHookEx + WH_CBT работает не так как должен

Есть 2 подобные функции для установки хука для 64 и 32 - битных приложений:

283