最近做一個php項目的時候,遇到一個問題。
功能:使用phpexcel導出數據。
問題描述:導出身份證后四位是0000
這是因為在excel中如果在一個默認的格中輸入或復制超長數字字符串,它會顯示為科學計算法。
方法一:設置單元格為文本
- $objPHPExcel=newPHPExcel();
- $objPHPExcel->setActiveSheetIndex(0);
- $objPHPExcel->getActiveSheet()->setTitle('Simple');
- //設置A3單元格為文本
- $objPHPExcel->getActiveSheet()->getStyle('A3')->getNumberFormat()
- ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
- //也可以設置整行或整列的style
- /*
- //E列為文本
- $objPHPExcel->getActiveSheet()->getStyle('E')->getNumberFormat()
- ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
- //第三行為文本
- $objPHPExcel->getActiveSheet()->getStyle('3')->getNumberFormat()
- ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
- */
更多的格式可以在PHPExcel/Style/NumberFormat.php中找到。
注意:上述的設置對長數字字符串還是以文本方式來顯示科學計數法的結果。
方法二:在設置值的時候顯示的指定數據類型
- $objPHPExcel=newPHPExcel();
- $objPHPExcel->setActiveSheetIndex(0);
- $objPHPExcel->getActiveSheet()->setTitle('Simple');
- $objPHPExcel->getActiveSheet()->setCellValueExplicit('D1',123456789033,PHPExcel_Cell_DataType::TYPE_STRING);
方法三:在數字字符串前加一個空格使之成為字符串
- $objPHPExcel=newPHPExcel();
- $objPHPExcel->setActiveSheetIndex(0);
- $objPHPExcel->getActiveSheet()->setTitle('Simple');
- $objPHPExcel->getActiveSheet()->setCellValue('D1',''.123456789033);
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答