標籤:國際 excel匯出 演算法 ubi 功能 ext 注意 obj 沒有
華彩CC網投國際轉寄:原文為 http://www.kubiji.cn/juhe-id9013.html
摘要:最近做一個php項目的時候,遇到一個問題.功能:使用phpexcel匯出資料.問題描述:匯出身份證後四位是0000這是因為在excel中如...
最近做一個php項目的時候,遇到一個問題。
功能:使用phpexcel匯出資料。
問題描述:匯出身份證後四位是0000
這是因為在excel中如果在一個預設的格中輸入或複製超長數字字串,它會顯示為科學計演算法。
方法一:設定儲存格為文本
$objPHPExcel = new PHPExcel();
$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 = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setTitle(‘Simple‘);
$objPHPExcel->getActiveSheet()->setCellValueExplicit(‘D1‘,123456789033, PHPExcel_Cell_DataType::TYPE_STRING);
方法三:在數字字串前加一個空格使之成為字串
$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setTitle(‘Simple‘);
$objPHPExcel->getActiveSheet()->setCellValue(‘D1‘, ‘ ‘ . 123456789033);
推薦使用第二、三種,第一種沒有根本解決問題。
讓phpexcel匯出資料0000