phpExcel包的下载地址:http://download.csdn.net/detail/kesixin/9920920

首先先说一下,这段例程是使用在Thinkphp的开发框架上,要是使用在其他框架也是同样的方法,很多人可能不能正确的实现Excel的导入导出,问题基本上都是phpExcel的核心类引用路径出错,如果有问题大家务必要对路劲是否引用正确进行测试。

从Excel表中导入数据

1.前台html页面代码如下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><form method="post" action="import" enctype="multipart/form-data"><h3>导入Excel表:</h3><input  type="file" name="file-data" /><input type="submit"  value="导入" /></form>
</body>
</html>

2.将phpExcel包导入到ThinkPHP\Library\Vendor目录下。

3.在公共函数function.php中新建函数importExcel,代码如下:

/***  读取excel表数据* @param string $filename 路径文件名* @param string $encode 返回数据的编码 默认为utf8* @return array $excelData 返回数组*/
function importExcel($filename, $encode = 'utf-8')
{vendor("PHPExcel.PHPExcel");$objReader = PHPExcel_IOFactory::createReader('Excel5');$objReader->setReadDataOnly(true);$objPHPExcel = $objReader->load($filename);$objWorksheet = $objPHPExcel->getActiveSheet();$highestRow = $objWorksheet->getHighestRow();$highestColumn = $objWorksheet->getHighestColumn();$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);$excelData = array();for ($row = 1; $row <= $highestRow; $row++) {for ($col = 0; $col < $highestColumnIndex; $col++) {$excelData[$row][] = (string)$objWorksheet->getCellByColumnAndRow($col, $row)->getValue();}}return $excelData;}

4.在对应的php文件进行文件的处理:

/*** 导入excel表数据*/public function import(){if (IS_POST) {if (!empty ($_FILES ['file-data'] ['name'])) {$tmp_file = $_FILES ['file-data'] ['tmp_name'];$file_types = explode(".", $_FILES ['file-data'] ['name']);$file_type = $file_types [count($file_types) - 1];/*判别是不是.xls文件,判别是不是excel文件*/if (strtolower($file_type) != "xls") {$this->error('不是Excel文件,重新上传');}/*设置上传路径*/$savePath = './Public/';/*以时间来命名上传的文件*/$str = date('Ymdhis');$file_name = $str . "." . $file_type;/*是否上传成功*/if (!copy ( $_FILES['file-data']['tmp_name'], $savePath . $file_name )) {echo "上传失败";}/*对上传的Excel数据进行处理生成编程数据,这个函数会在下面第三步的importExcel中调用执行,把Excel转化为数组并返回给$res,再进行数据库写入*/$res = importExcel( $savePath . $file_name);var_dump($res);/*写入数据库*/......}} else {$this->display();}}

导出数据到Excel表中

1.在公共函数function.php中新建函数exportExcel,代码如下:

/*** 导出数据* @param1 string $expTitle 文件名* @param2 array $expCellName  列名* @param3 array $expTableData 表数据*/function exportExcel($expTitle, $expCellName, $expTableData)
{$xlsTitle = iconv('utf-8', 'gb2312', $expTitle); //文件名称$cellNum = count($expCellName);$dataNum = count($expTableData);vendor("PHPExcel.PHPExcel");$objPHPExcel = new PHPExcel();//列的数目,可以根据需要添加$cellName = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z','AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ');//设置字体样式$objPHPExcel->getActiveSheet()->getStyle('A1:AZ1')->getFont()->setName('黑体');$objPHPExcel->getActiveSheet()->getStyle('A1:AZ1')->getFont()->setSize(14);
//    $objPHPExcel->getActiveSheet()->getStyle('A1:AZ1')->getFont()->setBold(true);//$objPHPExcel->getActiveSheet(0)->mergeCells('A1:' . $cellName[$cellNum - 1] . '1'); //合并单元格//遍历生成表第一行->每一列的名称for ($i = 0; $i < $cellNum; $i++) {$objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i] . '1', $expCellName[$i][1]);}//遍历填入数据for ($i = 0; $i < $dataNum; $i++) {for ($j = 0; $j < $cellNum; $j++) {$objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j] . ($i + 2), $expTableData[$i][$expCellName[$j][0]]);}}ob_end_clean(); //清空缓存header('Content-Type: application/vnd.ms-excel;charset=utf-8;name="' . $xlsTitle . '.xls"');header("Content-Disposition: attachment;filename=$xlsTitle.xls");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 pastheader('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modifiedheader('Cache-Control: cache, must-revalidate'); // HTTP/1.1header('Pragma: public'); // HTTP/1.0$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');$objWriter->save('php://output');exit;
}

2.在对应的php文件进行数据的查询:

    /*** 导出会员到excel表*/function outExcel(){$xlsName="会员列表";$xlsCell=array(array('nickname','昵称'),array('realname','姓名'),array('idcard','身份证号'),array('phonenum','手机号码'),array('email','电子邮箱'),array('address','现居地址'),array('regtime','注册时间'),);$xlsData=D("user")->field('nickname,realname,idcard,phonenum,email,address,regtime')->select();exportExcel($xlsName, $xlsCell, $xlsData);}}

以上就是PHP利用phpExcel实现Excel数据导入导出的全部内容。

PHP利用phpExcel实现Excel数据的导入导出相关推荐

  1. 循序渐进开发WinForm项目(5)--Excel数据的导入导出操作

    随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到C#开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了. 其实也许我 ...

  2. Java 利用EasyPoi做Excel模板的导入导出操作

    Java 利用EasyPoi做Excel模板的导入导出操作 项目背景 加入pom依赖 项目Excel模板图 代码实现 首先是实体类定义 Excel 实现导入 Excel的导出 结束语 项目背景 作为一 ...

  3. 使用phpexcel将excel表格的导入导出

    使用phpexcel将excel表格的导入数据库 1–使用composer安装phpexcel包 composer require phpoffice/phpexcel -vvv 2-控制器 //导入 ...

  4. php利用phpexcel插件实现数据的导入和导出(支持csv\xls\xlsx格式和超过26个字段列)

    一.导入(这其中show_msg和logFile是自定义函数) /*** 方法名 : excelToTable* 作用 : [私有]将excel数据导入数据表中* @param1 : file 用户上 ...

  5. C#实现EXCEL数据的导入导出

    用户经常会有这种需求,可以将excel中的数据自动导入到数据库,而不用费时费力地手动添加,或者将某些数据导出存放到excel表格中. 一.excel导入 实现思路:先将excel文件上传到服务器(文件 ...

  6. C#winform中操作Excel数据,导入导出功能

    命名空间 using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using System; us ...

  7. toad导入数据_利用TOAD实现EXCEL数据在oracle的导入导出

    利用TOAD实现EXCEL数据在oracle的导入导出 1.从ORACLE数据库导出成为EXCEL文件 利用TOAD连接上数据库,访问某个表,我本机是选中表"OA_USER" 右键 ...

  8. 使用PHPExcel实现Excel文件的导入和导出(模板导出)

    在之前有写过一篇文章讲述了使用PHP快速生成excel表格文件并下载,这种方式生成Excel文件,生成速度很快,但是有缺点是: 1.单纯的生成Excel文件,生成的文件没有样式,单元格属性(填充色,宽 ...

  9. php写excel文件_利用PHPExcel实现Excel文件的写入和读取

    作为一个原本的Java党,用过PHP才知道,原来对于Excel文件的写入和读取原来可以这么简单! 利用PHP实现对于Excel的读取,主要借助于PHPExcel插件来完成. PHPExcel下载地址: ...

最新文章

  1. 如何在本地站点打开html,如何在本地运行的网页上创建指向本地文件的链接?...
  2. 使用sqlserver日期函数获取当前日期
  3. php 今天 明天 后天 显示10天,【微信小程序】实现含有今天,明天,后天的日期组件...
  4. scala 字符串转换数组_如何在Scala中将字节数组转换为字符串?
  5. matlab算法大全 pdf_遗传模拟退火算法求解旅行商(TSP)问题
  6. Vue 路由模块化配置
  7. ng service(服务)
  8. Spring框架工作原理
  9. (2)安装宝塔与docker及docker镜像下载加速
  10. Java 基础类型 —— Short
  11. php面试题之三——PHP语言基础(基础部分)
  12. 基于SQL求集合的交、并、补
  13. 简述Android 解决65536/64K方法数限制方案
  14. 小米商城网页版(js+css)
  15. 第3章(3.11~3.16节)模型细节/Kaggle实战【深度学习基础】--动手学深度学习【Tensorflow2.0版本】
  16. 循环神经网络 - 卷积神经网络
  17. cv2.VideoCapture(0)
  18. VM虚拟机 -Mac 镜像安装(黑苹果系统)
  19. 全球与中国阻燃海绵市场深度研究分析报告
  20. 简易数字式电阻、电容和电感测量仪设计报告

热门文章

  1. elementUI中,操作表格单行的dom-锁定和解锁——$nextTick用法-dom根据数据改变而改变
  2. 基于机器算法的美国研究生院入学录取率预测系统实现
  3. 研发费用补贴!武汉经开区(汉南区)企业研发费用投入奖补认定对象条件及申报标准材料合集
  4. 局域网不能访问mysql数据库
  5. java声网_Java声音技术简析
  6. 尼康数码相机照片误删怎么恢复 相机内存卡数据恢复
  7. VC sendinput模拟键盘按键
  8. Python绘图——漂亮的玫瑰(源代码)
  9. Maven打包、安装命令
  10. NFC技术解读及ST NFC产品与方案