博主信息
博文 143
粉丝 1
评论 0
访问量 425434
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
ThinkPHP5 excel 导入/导出
弘德誉曦的博客
原创
2238人浏览过

首先vendor下引入phpexcel

 

 

复制代码
 phpexcel\phpexcel\Classes\PHPExcel; (!('import_excel' import_excel(
        vendor('phpexcel.phpexcel.Classes.PHPExcel'
         (!(('no file!'
         = ( (,
        ( === 'csv'
            =(=("\r\n", 
             (   => ( > 0[] = (",", 
             = 
            ('max_execution_time', '0'
             = PHPExcel_IOFactory::identify( = PHPExcel_IOFactory::createReader( = ->load( =  ->
             = ->
             = PHPExcel_Cell::columnIndexFromString(->
            =
            (=2;<=;++
                 = 0
                (=0;<;++
                     = PHPExcel_Cell::stringFromColumnIndex(
                     = ->getCell(.)->
                    ((++
                    [-2][]=
                ( == ([-2  (!('export_excel' export_excel(,,'phpexcel.phpexcel.Classes.PHPExcel');
         =  \PHPExcel(); 
         = ->getActiveSheet(); 
        ->setTitle(); 
        
         = 'A' (  ->setCellValue(.'1', )->getStyle(.'1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::++
         =2 (   = 'A' (  ->setCellValue(.,)->getStyle(.)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::->getColumnDimension()->setAutoSize(++++ =  \PHPExcel_Writer_Excel2007( 
        ();  
        ("Pragma: public"("Expires: 0"("Cache-Control:must-revalidate,post-check=0,pre-check=0"("Content-Type:application/force-download"("Content-Type:application/vnd.ms-execl"("Content-Type:application/octet-stream"("Content-Type:application/download"('Content-Disposition:attachment;filename="'..'.xlsx"'("Content-Transfer-Encoding:binary"->save('php://output'
复制代码

 

 

调用

复制代码
 = (request()-> = request()->(['0' = ->move(ROOT_PATH . 'public' . DS . 'uploads' . DS . 'excel'=('\\','/',-> = ROOT_PATH . 'public' . DS . 'uploads' . DS . 'excel' . DS. = import_excel(( = db('device')->field('id,device_no,name')-> = ["编号","设备序号","名称" = export_excel(,"test",();;
复制代码

 

注意事项:

加载测试文件

下面主要判断Excel2007和Excel5类型,即xlsx/xlsm/xltx/xltm和xls/xlt格式文件

复制代码
 = PHPExcel_IOFactory::identify( ( !== "Excel5" &&  !== "Excel2007"() && str_alert(-1,"请确保导入的文件格式正确!" = PHPExcel_IOFactory::createReader( = ->load(( () && str_alert(-1,'加载文件发生错误:”'.(,PATHINFO_BASENAME).'”: '.->
复制代码

获取工作表行数和列数

 = -> = ->getHighestColumn();

注意:有时候你会发现你的表格明明有内容的行数就5行,但是获取到的$highestRow却有7,8行或者更多,这可能是因为你在操作你的表格的时候不小心点击了其它行数,虽然没有填写内容,但getHighestRow也是能够识别出行数;

想要获取有内容的行数应该使用getHighestDataRow和getHighestDataColumn,

源码注释是这样介绍的string Highest row number that contains data,即包含数据的字符串最高行数.

转换时间

 

获取表格中时间格式的内容,需要PHPExcel_Shared_Date::ExcelToPHP()来转换为php可识别的时间格式

('Y-m-d',PHPExcel_Shared_Date::ExcelToPHP();

 或者在读取的时候进行处理

读出的时间是天数

excel 的日期是从 1900-01-01 开始计算的(php 是从 1970-01-01)
两者间有一个天数差 25569
时间是格林威治时间
所以有

 = 25569 = 24 * 60 * 60 ('Y-m-d H:i:s', (41728.732916667 - ) * );

 

本文部分内容摘自:https://blog.csdn.net/weixin_36595597/article/details/81132472

本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学