html

<form method="post" action="?m=content&c=content&a=public_add_excel" enctype="multipart/form-data">
    <h3>导入excel表:</h3><input type="file" name="file_stu"/>
    <input type="submit" value="导入"/>
</form>

//导入的方法

public function public_add_excel()
    {
         $file_path=$_FILES['file_stu']['tmp_name'];
         require PC_PATH.'libs/classes/PHPExcel.php';
         require PC_PATH.'libs/classes/PHPExcel/IOFactory.php';
         require PC_PATH.'libs/classes/PHPExcel/Reader/Excel2007.php';
         require PC_PATH.'libs/classes/PHPExcel/Reader/Excel5.php';
        
        $this->db_hb2 = pc_base::load_model('huanbao2_model');
        
        
         move_uploaded_file($file_path, './tmp.xls');
         $array=format_excel2array('./tmp.xls');
         //array_shift($array);
         //将数组入库按照官方方法入库
         //var_dump($array);die;
           foreach ($array as $key => $value) {
                $mzinfo=array();
                $mzinfo['c3']=$value['B'];
                $mzinfo['com1']=$value['C'];
                $mzinfo['carname']=$value['D'];
                $mzinfo['fdj']=$value['E'];
                $mzinfo['com2']=$value['F'];
                $mzinfo['shangbiao']=$value['G'];
                $mzinfo['jieduan']=$value['H'];
                $mzinfo['cat']=$value['I'];
                $time = (((double)$value['J'])-25569)*24*60*60-28800;//时间的转换
                
                $mzinfo['time']=str_replace("00:00","",date('Y-m-d H:i',$time)) ;
                $mzinfo['flag']=2;
                $ids=$this->db_hb2->insert($mzinfo,true);
           }
           
           showmessage(L('operation_success'), HTTP_REFERER);

}

//format_excel2array

这个方法我写在phpcms/libs/functions/global.func.php里面

function format_excel2array($filePath='',$sheet=0){
        if(empty($filePath) or !file_exists($filePath)){die('file not exists');}
        $PHPReader = new PHPExcel_Reader_Excel2007();        //建立reader对象
        if(!$PHPReader->canRead($filePath)){
                $PHPReader = new PHPExcel_Reader_Excel5();
                if(!$PHPReader->canRead($filePath)){
                        echo 'no Excel';
                        return ;
                }
        }
        $PHPExcel = $PHPReader->load($filePath);        //建立excel对象
        $currentSheet = $PHPExcel->getSheet($sheet);        //**读取excel文件中的指定工作表*/
        $allColumn = $currentSheet->getHighestColumn();        //**取得最大的列号*/
        $allRow = $currentSheet->getHighestRow();        //**取得一共有多少行*/
        $data = array();
        for($rowIndex=1;$rowIndex<=$allRow;$rowIndex++){        //循环读取每个单元格的内容。注意行从1开始,列从A开始
                for($colIndex='A';$colIndex<=$allColumn;$colIndex++){
                        $addr = $colIndex.$rowIndex;
                        $cell = $currentSheet->getCell($addr)->getValue();
                        if($cell instanceof PHPExcel_RichText){ //富文本转换字符串
                                $cell = $cell->__toString();
                        }
                        $data[$rowIndex][$colIndex] = $cell;
                }
        }
        return $data;
    }

//导出的方法

public function daochuexcel()
    {
        require PC_PATH.'libs/classes/PHPExcel.php';
        require PC_PATH.'libs/classes/PHPExcel/Writer/Excel5.php';
        require PC_PATH.'libs/classes/PHPExcel/Writer/Excel2007.php';
        require PC_PATH.'libs/classes/PHPExcel/IOFactory.php';
        
        if(empty($_POST['ids'])) showmessage(L('you_do_not_check'));
        $where=" itemid in(".implode(",",$_POST['ids']).")";
        $result=$this->db_hb->select($where,'*');
        //var_dump($result);die;
        //创建一个excel对象
        $objPHPExcel = new PHPExcel();
        $objPHPExcel->getProperties()->setCreator("ctos")
                    ->setLastModifiedBy("ctos")
                    ->setTitle("Office 2007 XLSX Test Document")
                    ->setSubject("Office 2007 XLSX Test Document")
                    ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
                    ->setKeywords("office 2007 openxml php")
                    ->setCategory("Test result file");

//set width  
            $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(8);
            $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(10);
            $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(25);
            $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(12);
            $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(50);
            $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(10);
            $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(12);
            $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(12);
            $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(12);
            $objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(30);

//设置行高度  
            $objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(22);

$objPHPExcel->getActiveSheet()->getRowDimension('2')->setRowHeight(20);

//set font size bold  
            $objPHPExcel->getActiveSheet()->getDefaultStyle()->getFont()->setSize(10);
            $objPHPExcel->getActiveSheet()->getStyle('A2:J2')->getFont()->setBold(true);

$objPHPExcel->getActiveSheet()->getStyle('A2:J2')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
            $objPHPExcel->getActiveSheet()->getStyle('A2:J2')->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);

//设置水平居中  
            $objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
            $objPHPExcel->getActiveSheet()->getStyle('A')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
            $objPHPExcel->getActiveSheet()->getStyle('B')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
            $objPHPExcel->getActiveSheet()->getStyle('D')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
            $objPHPExcel->getActiveSheet()->getStyle('F')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
            $objPHPExcel->getActiveSheet()->getStyle('G')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
            $objPHPExcel->getActiveSheet()->getStyle('H')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
            $objPHPExcel->getActiveSheet()->getStyle('I')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

//  
            $objPHPExcel->getActiveSheet()->mergeCells('A1:J1');

// set table header content  
            $objPHPExcel->setActiveSheetIndex(0)
                    ->setCellValue('A1', '环保数据报表汇总  时间:' . date('Y-m-d H:i:s'))
                    ->setCellValue('A2', 'ID')
                    ->setCellValue('B2', '车辆型号')
                    ->setCellValue('C2', '生产企业名称')
                    ->setCellValue('D2', '车辆名称')
                    ->setCellValue('E2', '发动机型号')
                    ->setCellValue('F2', '发动机生产厂家')
                    ->setCellValue('G2', '商标')
                    ->setCellValue('H2', '阶段')
                    ->setCellValue('I2', '车辆类别')
                    ->setCellValue('J2', '目录日期');

// Miscellaneous glyphs, UTF-8  
                
            for ($i =0; $i < count($result); $i++) {
                $objPHPExcel->getActiveSheet(0)->setCellValue('A' . ($i + 3), $result[$i]['itemid']);
                $objPHPExcel->getActiveSheet(0)->setCellValue('B' . ($i + 3), $result[$i]['c3']);
                $objPHPExcel->getActiveSheet(0)->setCellValue('C' . ($i + 3), $result[$i]['com1']);
                $objPHPExcel->getActiveSheet(0)->setCellValue('D' . ($i + 3), $result[$i]['carname']);
                $objPHPExcel->getActiveSheet(0)->setCellValue('E' . ($i + 3), $result[$i]['fdj']);
                $objPHPExcel->getActiveSheet(0)->setCellValue('F' . ($i + 3), $result[$i]['com2']);
                $objPHPExcel->getActiveSheet(0)->setCellValue('G' . ($i + 3), $result[$i]['shangbiao']);
                $objPHPExcel->getActiveSheet(0)->setCellValue('H' . ($i + 3), $result[$i]['jieduan']);
                $objPHPExcel->getActiveSheet(0)->setCellValue('I' . ($i + 3), $result[$i]['cat']);
                $objPHPExcel->getActiveSheet(0)->setCellValue('J' . ($i + 3), $result[$i]['time']);
                $objPHPExcel->getActiveSheet()->getStyle('A' . ($i + 3) . ':J' . ($i + 3))->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
                $objPHPExcel->getActiveSheet()->getStyle('A' . ($i + 3) . ':J' . ($i + 3))->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
                $objPHPExcel->getActiveSheet()->getRowDimension($i + 3)->setRowHeight(16);
            }

// Rename sheet  
            $objPHPExcel->getActiveSheet()->setTitle('环保数据汇总表');

// Set active sheet index to the first sheet, so Excel opens this as the first sheet  
            $objPHPExcel->setActiveSheetIndex(0);

// Redirect output to a client’s web browser (Excel5)  
            ob_end_clean();//清除缓冲区,避免乱码
            header('Content-Type: application/vnd.ms-excel');
            header('Content-Disposition: attachment;filename="环保数据汇总表(' . date('Ymd-His') . ').xls"');
            header('Cache-Control: max-age=0');

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
            $objWriter->save('php://output');
        
    }

phpcms 用phpexcel导入导出excel的更多相关文章

  1. 使用PHPExcel导入导出excel格式文件

    使用PHPExcel导入导出excel格式文件  作者:zccst  因为导出使用较多,以下是导出实现过程.  第一步,将PHPExcel的源码拷贝到项目的lib下  文件包含:PHPExcel.ph ...

  2. phpexcel 导入导出excel表格

    phpexcel中文实用手册 转载:http://www.cnblogs.com/freespider/p/3284828.html 下面是总结的几个使用方法 include 'PHPExcel.ph ...

  3. PHP导入导出excel表格图片(转)

    写excel的时候,我用过pear的库,也用过pack压包的头,同样那些利用smarty等作的简单替换xml的也用过,csv的就更不用谈了.呵呵.(COM方式不讲了,这种可读的太多了,我也写过利用wp ...

  4. thinkphp导入导出excel表单数据

    在PHP项目经常要导入导出Excel表单. 先去下载PHPExcel类库文件,放到相应位置. 我在thinkphp框架中的位置为ThinkPHP/Library/Org/Util/ 导入 在页面上传e ...

  5. PHP导入导出Excel方法

    看到这篇文章的时候,很是惊讶原作者的耐心,虽然我们在平时用的也 有一些,但没有作者列出来的全,写excel的时候,我用过pear的库,也用过pack压包的头,同样那些利用smarty等作的简单替换xm ...

  6. PHP导入导出excel表格图片的代码和方法大全

    基本上导出的文件分为两种: 1:类Excel格式,这个其实不是传统意义上的Excel文件,只是因为Excel的兼容能力强,能够正确打开而已.修改这种文件后再保存,通常会提示你是否要转换成Excel文件 ...

  7. PHP导入导出Excel方法小结

    基本上导出的文件分为两种: 1:类Excel格式,这个其实不是传统意义上的Excel文件,只是因为Excel的兼容能力强,能够正确打开而已.修改这种文件后再保存,通常会提示你是否要转换成Excel文件 ...

  8. ASP.NET Core 导入导出Excel xlsx 文件

    ASP.NET Core 使用EPPlus.Core导入导出Excel xlsx 文件,EPPlus.Core支持Excel 2007/2010 xlsx文件导入导出,可以运行在Windows, Li ...

  9. 导入导出Excel工具类ExcelUtil

    前言 前段时间做的分布式集成平台项目中,许多模块都用到了导入导出Excel的功能,于是决定封装一个ExcelUtil类,专门用来处理Excel的导入和导出 本项目的持久化层用的是JPA(底层用hibe ...

随机推荐

  1. 原来rollup这么简单之 tree shaking篇

    大家好,我是小雨小雨,致力于分享有趣的.实用的技术文章. 内容分为翻译和原创,如果有问题,欢迎随时评论或私信,希望和大家一起进步. 分享不易,希望能够得到大家的支持和关注. 计划 rollup系列打算 ...

  2. python学习第四节 迭代器 生成器

    1:什么是迭代 可以直接作用于for循环的对象统称为可迭代对象(Iterable). 可以被next()函数调用并不断返回下一个值的对象称为迭代器(Iterator). 所有的Iterable均可以通 ...

  3. 2783: 【基础】小 X 玩游戏(game)

    2783: [基础]小 X 玩游戏(game) 时间限制: 1 Sec 内存限制: 64 MB 提交: 752 解决: 294 [提交] [状态] [讨论版] [命题人:ghost79] 题目描述 听 ...

  4. 人工智能新手入门学习路线和学习资源合集(含AI综述/python/机器学习/深度学习/tensorflow)

    [说在前面]本人博客新手一枚,象牙塔的老白,职业场的小白.以下内容仅为个人见解,欢迎批评指正,不喜勿喷![握手][握手] 1. 分享个人对于人工智能领域的算法综述:如果你想开始学习算法,不妨先了解人工 ...

  5. Zookeeper是如何实现分布式锁的

    [toc] Zookeeper是如何实现分布式锁的 标签 : Zookeeper 分布式 实现分布式锁要考虑的重要问题 1. 三个核心要素 加锁, 解锁, 锁超时 2. 三个问题 要保证原子性操作, ...

  6. python:简单爬取自己的一篇博客文章

    1.爬取文章地址:https://www.cnblogs.com/Mr-choa/p/12495157.html 爬取文章的标题.具体内容,保存到文章名.txt 代码如下: # 导入requests模 ...

  7. .gitattributes

    .gitattributes文件是一个文本文件,文件中的一行定义一个路径的若干属性.以行为单位设置一个路径下所有文件的属性,格式如下: 要匹配的文件模式 属性1 属性2 GRLF和LF CRLF,LF ...

  8. jmeter配置CSV Data Set Config

    Filename:需要引用文件的路径 File encoding:文件的编码格式,文件有中文时,一般是utf-8和gb2312,填其他编码可能乱码 Variable Names:要引用到请求中的变量名 ...

  9. 1006 Sign In and Sign Out (25 分)

    At the beginning of every day, the first person who signs in the computer room will unlock the door, ...

  10. 一个关于HttpClient的轮子

    由于本文较长,需要耐住性子阅读,另外本文中涉及到的知识点较多,想要深入学习某知识点可以参考其他博客或官网资料.本文也非源码分析文章,示例中的源码大多是伪代码和剪辑过的代码示例,由于该轮子为公司内部使用 ...