mysql - php导出excel数据,身份证输出问题

WBOY
Lepaskan: 2016-10-11 14:23:16
asal
1408 orang telah melayarinya

用php导出数据到excel文件,没用PHPExcel类,自己写了一个简单的程序
生成excel文件,然后把数据一行一行输入
但是身份证号输出成了科学计数,网上有解决方案,一个是前面加引号,确实能解决问题,
另一个http://www.cnblogs.com/jcz120...
但感觉好麻烦,请问诸位,除了这两种解决方案,难道就没什么别的办法了吗?
谢谢各位了

回复内容:

用php导出数据到excel文件,没用PHPExcel类,自己写了一个简单的程序
生成excel文件,然后把数据一行一行输入
但是身份证号输出成了科学计数,网上有解决方案,一个是前面加引号,确实能解决问题,
另一个http://www.cnblogs.com/jcz120...
但感觉好麻烦,请问诸位,除了这两种解决方案,难道就没什么别的办法了吗?
谢谢各位了

把身份证号追加一个空格,其实就是把数字转换成字符串就可以了

在身份证数字前面加上一个单引号(英文输入状态下的单引号),比如 '4400202.....

要么加个单引号,要么预先把单元格格式改为文本格式,这俩是最简单的解决方案了,还麻烦..?

  1. 前面加单引号:$objPHPExcel->getActiveSheet()->setCellValue('A1', "'". 123456789033);

  2. 指定数据类型:<code>$objPHPExcel->getActiveSheet()->setCellValueExplicit('A1',123456789033, PHPExcel_Cell_DataType::TYPE_STRING);</code>

很简单,曾经遇到过,在后面加一个"431226198910135411"."\t",完全解决。如果解决了您的问题,请记得粉一个哦,微信公众号:phpgod。
+++更新分割线,时间:2016-10-9 11:18:09+++
segmentfault的编辑器真心把我恶心到了,上面的t竟然给我转义了,艹!

你生成的是什么格式的excel文件,csvxls还是xlsx,1,3的话,生成相对好处理,csv按分隔符,但是不好处理字符串,xlsx是xml(感觉你应该是封装了处理这个吧),xlsx的格式里面有专门存字符串的xml,需要把字符串存到这个xml里面,再根据字符串的序号去取(这样设计估计能减少重复字符串占用资源)。不过还是用PHPExcel吧,直接用Composer require下就好了,我之前也写了个读取和生成excel的库,后面兼容性什么的比较麻烦,就直接用PHPExcel了。毕竟别人填了不少坑。

另外PHPExcel处理字符串的方法,楼上有提到。

Copy楼上的:

<code>$objPHPExcel->getActiveSheet()->setCellValueExplicit('A1',123456789033, PHPExcel_Cell_DataType::TYPE_STRING);</code>
Salin selepas log masuk
Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan