前言:对于excel大家肯定熟悉不过了的,那么我们在日常的业务中应该是有对这些文件的导入导出操作的
类的下载:composer require phpoffice/phpexcel,其中Classes文件是核心文件
//导入excel文件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>文件的读写</title> </head> <body> <form action="./importexcelserver.php" method="post" enctype="multipart/form-data"> 请选择文件:<input type="file" name="excel"> <br/> <input type="submit" value="上传"> </form> </body> </html>
//excel导入的方法的后端代码 function import_One() { require "./Classes/PHPExcel/IOFactory.php"; $excelio=PHPExcel_IOFactory::load($_FILES['excel']['tmp_name']); //第一个参数是表单提交的name,第二个是临时名 $sheetcount=$excelio->getSheetCount(); $datas=$excelio->getSheet(0)->toArray(); // 获取第一个sheet数据 unset($datas[0]); // 删除表头名字, echo "<pre>"; print_r($datas);
//.....接着你就可以操作数据库入库了
} import_One();
//导出前台代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>文件的读写</title> </head> <body> <div> <button id="output">单击我导出文件</button> </div> </body> <script type="text/javascript"> document.getElementById('output').onclick = function(){ location.href = 'export.php'; } </script> </html>
<?php //导出文件后台代码 function export() { require "./Classes/PHPExcel.php"; // 引入核心文件 require "./Classes/PHPExcel/Writer/Excel5.php"; //此类主要往excel表中写数据的文件 $objPHPExcel = new PHPExcel(); // 实例一个excel核心类 $objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); // 将excel类对象作为参数传入进去 $sheets=$objPHPExcel->getActiveSheet()->setTitle('sheet_name');//设置表格名称 //设置sheet列头信息 $objPHPExcel->setActiveSheetIndex()->setCellValue('A1', '名字')->setCellValue('B1', '邮箱')->setCellValue('C1', '性别'); //这里是操作数据库查询库中的字段的值(如果数量庞大可以利用框架的批量读取功能) $users=D("User")->limit(10)->Select(); $i=2;//第一行被表头占有了 foreach($users as $v){ //设置单元格的值 $sheets=$objPHPExcel->getActiveSheet()->setCellValue('A'.$i,$v['username']); $sheets=$objPHPExcel->getActiveSheet()->setCellValue('B'.$i,$v['email']); $sheets=$objPHPExcel->getActiveSheet()->setCellValue('C'.$i,$v['sex']?"男":"女"); $i++; } //整体设置字体和字体大小 $objPHPExcel->getDefaultStyle()->getFont()->setName( 'Arial');//整体设置字体 $objPHPExcel->getDefaultStyle()->getFont()->setSize(10);//整体设置字体大小 // $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true); //单元格宽度自适应 $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(20); //设置列宽度 $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20); //设置列宽度 $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(20); //设置列宽度 $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(20); //设置列宽度 $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(20); //设置列宽度 $objPHPExcel->getActiveSheet()->getStyle('B3')->getFont()->setBold(true); //设置单元格字体加粗 // 输出Excel表格到浏览器下载 header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="excel_name.xls"'); //excel表格名称 header('Cache-Control: max-age=0'); header('Cache-Control: max-age=1'); header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modified header('Cache-Control: cache, must-revalidate'); // HTTP/1.1 header('Pragma: public'); // HTTP/1.0 $objWriter->save('php://output'); }