zoukankan      html  css  js  c++  java
  • PHP 利用fputcsv()函数导出Excel,遇到数值精度超出15位后会自动置为0的解决方法

    背景:

    项目开发中经常使用fgetcsv()和fputcsv()函数高效导入导出Excel(csv)文件数据,但在使用fputcsv()函数导出Excel,遇到数值精度超出15位的列数据时,此列数据会将超出15位的值自定置为0,这是为什么?如何解决?

    原因:

    导出Excel/Csv文件时,列的数值精度为15位,超出15位后会自动置为0。

    例如原始数据为:

    [6708209641794310144,6708325755320795136,6708363343607894016,6709441113792450560]

    导出CSV文件为:

    解决方法:

    业务处理结果转Excel文件时将数值项前后加制表符" "强制转化类型即可,如下:

    //处理超出15位后重置0的数字->制表符的字符串
    if (is_numeric($value) && strlen($value) > 15) {
        $value = "	" . $value . "	";
    }
  • 相关阅读:
    第几天?
    农历02__资料
    农历01
    VC6_预编译头
    QWebEngine_C++_交互
    Qt570_CentOS64x64_02
    Qt570_CentOS64x64_01
    QWebEngineView_CssVariables
    Windows__书
    Win7SDK
  • 原文地址:https://www.cnblogs.com/wenzheshen/p/13712972.html
Copyright © 2011-2022 走看看