execl php 科学计数法处理_解决 PHPExcel 长数字串显示为科学计数

当在Excel或使用PHPExcel处理长数字时,数字可能会显示为科学计数法。解决方法包括设置单元格为文本格式、在写入时指定数据类型为字符串,或在数字前加空格。尽管直接设置单元格格式可能不完全有效,结合使用其他方法如setCellValueExplicit或在数字前加空格可以避免科学计数法的显示问题。

解决 PHPExcel 长数字串显示为科学计数

在excel中如果在一个默认的格中输入或复制超长数字字符串,它会显示为科学计算法,例如身份证号码,解决方法是把表格设置文本格式或在输入前加一个单引号。

使用PHPExcel来生成excel,也会遇到同样的问题,解决方法有三种:

1、设置单元格为文本

$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中找到。注意:上述的设置对长数字字符串还是以文本方式来显示科学计数法的结果,原因可能php在处理大数字时采用的科学计数法。

2、在设置值的时候显示的指定数据类型

$objPHPExcel = new PHPExcel();

$objPHPExcel->setActiveSheetIndex(0);

$objPHPExcel->getActiveSheet()->setTitle('Simple');

$objPHPExcel->getActiveSheet()->setCellValueExplicit('D1',

123456789033,

PHPExcel_Cell_DataType::TYPE_STRING);

3、在数字字符串前加一个空格使之成为字符串

$objPHPExcel = new PHPExcel();

$objPHPExcel->setActiveSheetIndex(0);

$objPHPExcel->getActiveSheet()->setTitle('Simple');

$objPHPExcel->getActiveSheet()->setCellValue('D1', ' ' . 123456789033);

推荐使用第二、三种,第一种没有根本解决问题。

这几种方法经实验,方法一必须要双击一下单元格,才能显现效果;方法二提示语法错误,而方法三,双击单元格后文本格式会消失,所以把方法一和方法三同时应用可得到想要的效果。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值