博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解决 PHPExcel 长数字串显示为科学计数
阅读量:6423 次
发布时间:2019-06-23

本文共 1894 字,大约阅读时间需要 6 分钟。

之前:

之后:

phpexcel导出excel长数字串显示为科学计数怎么办?

本人在用phpexcel导出的excel中长字符串数字,例如***号码,银行卡号会显示为科学计算法
下面说一下解决办法:
1、在数字字符串前加一个空格使之成为字符串
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(14, $i, ' '.$v['ex_zjhm']);
2、在设置值的时候显示的指定数据类型
$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setTitle('Simple');
$objPHPExcel->getActiveSheet()->setCellValueExplicit('D1',
                                 123456789033,
                                 PHPExcel_Cell_DataType::TYPE_STRING);


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

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

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

1、设置单元格为文本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$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、在设置值的时候显示的指定数据类型

1
2
3
4
5
6
$objPHPExcel 
new 
PHPExcel();
$objPHPExcel
->setActiveSheetIndex(0);
$objPHPExcel
->getActiveSheet()->setTitle(
'Simple'
);
$objPHPExcel
->getActiveSheet()->setCellValueExplicit(
'D1'
,
                                 
123456789033, 
                                 
PHPExcel_Cell_DataType::TYPE_STRING);

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

1
2
3
4
$objPHPExcel 
new 
PHPExcel();
$objPHPExcel
->setActiveSheetIndex(0);
$objPHPExcel
->getActiveSheet()->setTitle(
'Simple'
);
$objPHPExcel
->getActiveSheet()->setCellValue(
'D1'
' ' 
. 123456789033);

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

   本文转自许琴 51CTO博客,原文链接:http://blog.51cto.com/xuqin/1585876,如需转载请自行联系原作者

你可能感兴趣的文章
内核及其组成部分
查看>>
.NET 程序集单元测试工具 SmokeTest 应用指南
查看>>
Linux最大线程数限制及当前线程数查询
查看>>
java枚举使用详解
查看>>
什么是Scrum
查看>>
nginx负载均衡的5种策略
查看>>
90%人都不知道:SVN 和 Git 的一些误解和真相
查看>>
Android Studio NDK开发-其他编译选项
查看>>
关于this的全面解析(上)
查看>>
Python相对导入导致SystemError的解决方案(译)
查看>>
Swift 魔法:公开 Getter,隐藏 Setter
查看>>
[分享]iOS开发-UICollectionViewCell 布局
查看>>
NSURLRequestCachePolicy 缓存策略
查看>>
如何理解LXC与Docker之间的主要区别
查看>>
APP测试的新篇章
查看>>
Git小结
查看>>
orm2 中文文档 3.3 模型钩子
查看>>
Flask学习
查看>>
你真的会使用XMLHttpRequest吗?
查看>>
【数据可视化】艺术——图表的选择(上)
查看>>