个人编写excel导入程序过程中遇到的问题

原理是通过上传获取临时文件再phpexcel读取临时文件行数和列数,注意:只要有样式的或者有数据的都会被读取算作列数,这种情况在数据处理的时候过滤一下数据就行了。我是先通过循环列数再循环行数,一层循环里套一成循环组装数据:

for ($f=$start;$f<$HighestRow;$f++){
            $OrderDetail = array();
            $om_OrderDetaillie = array('B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V');
            $om_OrderDetailhang = array($f,$f,$f,$f,$f,$f,$f,$f,$f,$f,$f,$f,$f,$f,$f,$f,$f,$f,$f,$f,$f);
            $om_OrderDetailbiaoname = array('cCusAbbName','cItemSeason','cItemName','cItemNo','cPO','dDelive','nprice','iPCS','nMoney1','dOrderDate','nUsdRmbRate','nUsdGrossProfit','nGJ','nUSDMoney','nMoney2','cTitle','iRecDays','dRecMonth','cVenAbbName','cAccName','cRemark');
     
            for($i=0;$i<count($om_OrderDetaillie);$i++){
                $cell = $sheettmp->getCell($om_OrderDetaillie[$i].$om_OrderDetailhang[$i])->getValue();
                if($cell instanceof PHPExcel_RichText){ //富文本转换字符串
                     $cell = $cell->__toString();
                }
                $OrderDetail[$om_OrderDetailbiaoname[$i]] = $cell;
            } 
 
           
       
        }

上面的组装数据有冗余,自己可以完善。

PHP直接读取时间格式会有问题,excel 的日期是从 1900-01-01 开始计算的(php 是从 1970-01-01)两者间有一个天数差 25569,时间是格林威治时间,得转换时间

$d = 25569;

$t = 24 * 60 * 60;

echo gmdate('Y-m-d H:i:s', (41728.732916667 - $d) * $t);

猜你喜欢

转载自blog.csdn.net/qq_39586877/article/details/85250411