修复ThinkPHP导出excel数字过大时显示为科学记数法,这种显示对于查看的用户来说是及其不友好的。所以,我们要使其转化为正常的数字串!
我在google 的过程中,查了一些资料。其中
1)、
$this->_excelObj->getActiveSheet()->getStyle('C')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
$this->_excelObj->getActiveSheet()->getStyle('3')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
这是设置excel表格的单元格样式,我用了这个方法,但是没有效果。也许我使用哪里出错了,但是我不推荐使用这个方法!
2)、之所以会显示为科学记数法,是因为是数字表达。但是我们把数字转化为字符串,显示就会不会数字以科学记数法的显示方式了。
$this->_excelObj->getActiveSheet()->setCellValue($v.$i, ' '.$data[$colName[$k]]);
3)、更简单明了的方式,直接强制把值的类型做转换,设置值为字符串类型:
// $this->_excelObj->getActiveSheet()->setCellValueExplicit($v.$i,$data[$colName[$k]],\PHPExcel_Cell_DataType::TYPE_STRING);
// $this->_excelObj->getActiveSheet()->getStyle('C'.$i)->getNumberFormat()->setFormatCode("@");
然后再正常赋值
$this->_excelObj->getActiveSheet()->setCellValue($v.$i, $data[$colName[$k]]);
>我比较喜欢第二种方式,简单不粗暴
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】