首页 > 解决方案 > 将excel从mysql数据导出到php中具有大量数字的excel文件

问题描述

使用此代码工作正常: 有时在导出 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";

        }
    }

标签: phpexcelcodeigniterexport

解决方案


Excel 自动将大数字格式化为科学记数法,强制 Excel 使用文本格式,像这样在 ID 前添加撇号'8001114051777785


推荐阅读