双击后仅显示自定义PHPExcel单元格格式
发布时间:2020-12-13 22:42:58 所属栏目:PHP教程 来源:网络整理
导读:我在使用 PHPExcel设置自定义日期格式时遇到了一个奇怪的问题:我正在向一个单元格写一个sql格式的日期,并将其格式设置为setFormatCode为’d / m / y’.当我在Excel 2007中打开它时,它会显示orignial日期格式,直到我双击单元格然后它更新为我想要的格式. 有
我在使用
PHPExcel设置自定义日期格式时遇到了一个奇怪的问题:我正在向一个单元格写一个sql格式的日期,并将其格式设置为setFormatCode为’d / m / y’.当我在Excel 2007中打开它时,它会显示orignial日期格式,直到我双击单元格然后它更新为我想要的格式.
有没有办法在没有我帮助的情况下让它自我清新? $sheet->setCellValueByColumnAndRow($column,$row,'2010-07-16'); $sheet->getStyleByColumnAndRow($column,$row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_DMYSLASH);
除非您使用PHPExcel的“Advanced Value Binder”,否则$sheet-> setCellValueByColumnAndRow($column,’2010-07-16′);将值存储为字符串而不是日期,因此在应用于字符串时,您在下一行中设置的日期格式无意义,直到您在Excel中读取结果文件并强制刷新… Excel本身然后修复你的错误.
要确保值首先正确存储,您需要将其存储为日期/时间戳/数字而不是字符串,然后设置格式掩码以确保将其视为日期/时间戳而不是数字值. 使用strtotime()将您的字符串转换为PHP日期,然后使用PHPExcel的内置日期转换方法: $PHPDateValue = strtotime('2010-07-16'); $ExcelDateValue = PHPExcel_Shared_Date::PHPToExcel($PHPDateValue); $sheet->setCellValueByColumnAndRow($column,$ExcelDateValue); $sheet->getStyleByColumnAndRow($column,$row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_DMYSLASH); 或使用内置方法直接将日期格式的字符串转换为Excel日期时间值 $dateString = '2010-07-16'; $ExcelDateValue = PHPExcel_Shared_Date::stringToExcel($dateString); $sheet->setCellValueByColumnAndRow($column,$row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_DMYSLASH); 或使用计算引擎函数库的DATEVALUE()函数: $dateString = '2010-07-16'; $ExcelDateValue = PHPExcel_Calculation_Functions::DATEVALUE($dateString); $sheet->setCellValueByColumnAndRow($column,$row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_DMYSLASH); 或者,选项4,是使用PHPExcel的“高级价值活页夹” 要启用此功能,请执行以下静态调用 PHPExcel_Cell::setValueBinder( new PHPExcel_Cell_AdvancedValueBinder() ); 在实例化工作簿对象或从文件加载它之前 然后PHPExcel将识别您的值是一个日期,并处理转换为Excel日期/时间戳并自动格式化 $dateString = '2010-07-16'; $sheet->setCellValueByColumnAndRow($column,$dateString); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- php – 为什么Instagram的分页一遍又一遍地返回相同的页面?
- php – zf2 form:使用来自数据库的数据填充select字段
- PhpMyAdmin(在ubuntu指示灯上):配置禁止无密码登录(请参阅
- phpmailer简单发送邮件的方法(附phpmailer源码下载)
- php – 如何将JavaScript中的.html()值传递给CodeIgniter控
- THINKPHP项目开发中的日志记录实例分析
- php – 需要Zend表单的帮助
- php中神奇的fastcgi_finish_request
- php – 如何在localhost和live服务器上获得相同的$_SERVER
- php无限极分类实现的两种解决方法