экспорт Excel из данных MySQL в файл Excel с большим числом в PHP - PullRequest
0 голосов
/ 21 сентября 2019

Использование этого кода работает нормально: иногда, когда вы экспортируете файл Excel, вы получаете эту проблему. пример: 8001114051777785, но преобразуется в 8,00111E + 15

public function export_excel(){
        header("Content-Type: application/xls");
        header('Content-Disposition: attachment;filename="order_code_'.date('d_m_Y_His').'.xls"');
        $header=array('Order ID', 'Email','Create Time');
        $this->db->select('orders_id,  customer_email, create_time');
        $this->db->from('table');
         $this->db->order_by('orders_id', 'ASC');
        $this->db->limit(100);
        $referrerdata = $this->db->get()->result();
        $sep = "\t"; //tabbed character
        foreach ($header as $h){
            echo trim($h) . "\t";
        }
        print("\n");
        foreach($referrerdata as $data){
            $schema_insert = " ";
            $schema_insert .=isset($data->orders_id) ? " ' ".(string)$data->orders_id.$sep:"NULL".$sep;
            $schema_insert .=isset($data->customer_email) ? $data->customer_email.$sep:"NULL".$sep;
            $schema_insert .=isset($data->create_time) ? $data->create_time.$sep:"NULL".$sep;
            $schema_insert = str_replace($sep."$", "", $schema_insert);
            $schema_insert = preg_replace("/\r\n|\n\r|\n|\r/", " ", $schema_insert);
            $schema_insert .= "\t";
            print(trim($schema_insert));
            print "\n";

        }
    }

1 Ответ

0 голосов
/ 21 сентября 2019

Excel автоматически форматирует большие числа в научную нотацию, чтобы заставить Excel использовать форматирование текста, добавьте апостроф перед идентификатором, подобным этому '8001114051777785

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...