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. sql 模块 pymysql 数据库操作

    1. 添加一个部门. import pymysql def main(): no = int(input('编号: ')) name = input('名字: ') loc = input('所在地: ...

  2. cut-trailing-bytes:二进制尾部去0小工具

    背景 之前的文章 二进制文件处理之尾部补0和尾部去0 中介绍了一种使用 sed 去除二进制文件尾部的 NULL(十六进制0x00)字节的方法. 最近发现这种方法有局限性,无法处理较大的文件.因为 se ...

  3. python 控制台输出美化

    #格式: 设置颜色开始 :\033[显示方式;前景色;背景色m #说明: 前景色 背景色 颜色 --------------------------------------- 黑色 红色 绿色 黃色 ...

  4. NKOJ4270 小奇挖矿2

    问题描述 [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿石交易市场,以便为飞船升级无限非概率引擎. [问题描述] 现在有m+1个星球,从左到右标号为0到m,小 ...

  5. D - 渣渣仰慕的爱丽丝 HDU - 6249(背包问题变形)

    爱丽丝喜欢集邮.她现在在邮局买一些新邮票. 世界上有各种各样的邮票;它们的编号是1到N.但是,邮票不是单独出售的;必须成套购买.有M套不同的邮票可供选择; 第i套包括编号从li到ri的邮票 .同一枚邮 ...

  6. Apache本地服务器搭建(Mac版)

    由于Mac自带apache服务器,所以无需下载,apache默认处于开启状态. 可以在浏览器输入localhost,显示It works!,代表目前处于开启状态,默认文件目录为/Library/Web ...

  7. 解决MySQL workbench的resultgird不出现的问题

    23:01:37 2019-08-08 鸽了好久 终于开始看怎么使用MySQL workbench了 首先就是遇到了result gird不显示的问题 搜了 重启是一种办法(这方法...至少能用) 其 ...

  8. USB2.0/YTPE-C音频芯片DP108T集成晶振替代DP108 CM108

    DP108T是一种高集成度的USB/YTPE-C音频芯片.嵌入了所有必要的模拟模块,包括双DAC 和音频驱动.麦克风增益器 .PLL.稳压器和 USB 收发器.此外,音频音量可以很容易地通过专门的 H ...

  9. 【PHP】数组

    一.生活中的数组: a)    教室的座位:第一天来教室的时候,每个座位上都有自己的一个名字,我们可以通过这个名字快速定位到自己的座位在什么位置! b)    电影院的座位:我们买了电影票之后,能够通 ...

  10. Python常见数据结构-List列表

    Python list基本特点 列表是一种有序集合,可以随时添加和删除元素. 序列中的每个元素都分配一个数字 - 它的位置. 列表的数据项不需要具有相同的类型. 创建一个列表,只要把逗号分隔的不同的数 ...