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

上传人:飞*** 文档编号:44169243 上传时间:2018-06-08 格式:DOCX 页数:22 大小:38.88KB
返回 下载 相关 举报
php利用phpexcel插件实现数据的导入和导出(支持csvxlsxlsx格式和超过26个字段列)_第1页
第1页 / 共22页
php利用phpexcel插件实现数据的导入和导出(支持csvxlsxlsx格式和超过26个字段列)_第2页
第2页 / 共22页
php利用phpexcel插件实现数据的导入和导出(支持csvxlsxlsx格式和超过26个字段列)_第3页
第3页 / 共22页
php利用phpexcel插件实现数据的导入和导出(支持csvxlsxlsx格式和超过26个字段列)_第4页
第4页 / 共22页
php利用phpexcel插件实现数据的导入和导出(支持csvxlsxlsx格式和超过26个字段列)_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《php利用phpexcel插件实现数据的导入和导出(支持csvxlsxlsx格式和超过26个字段列)》由会员分享,可在线阅读,更多相关《php利用phpexcel插件实现数据的导入和导出(支持csvxlsxlsx格式和超过26个字段列)(22页珍藏版)》请在金锄头文库上搜索。

1、一、导入(这其中 show_msg 和 logFile 是自定义函数)/*方法名:excelToTable*作用:【私有】将 excel 数据导入数据表中*param1 :file 用户上传的文件信息*param2 :tableid 用来区别是哪张表,1-statistics_rawdata_pct,2-statistics_rawdata_apply,3-statistics_rawdata_auth,4-statistics_rawdata_valid*param3 :month_number 导入的数据属于哪一期的,比如 201510*param4 :table_head 用来判断 ex

2、cel 表格是否有表头,默认有*date:2015/11/26*author :dingling*/private function excelToTable($file,$tableid,$month_number,$table_head=1)if(!empty($filename)$file_types = explode ( “.“, $filename );$excel_type = array(xls,csv,xlsx);/判断是不是 excel 文件if (!in_array(strtolower(end($file_types),$excel_type)$this-show_ms

3、g(“不是 Excel 文件,重新上传“,“/search/patentStatistics/uploadRawdata“);/设置上传路径$savePath = _WWW_ . www/tmp/;/以时间来命名上传的文件$str = date ( Ymdhis );$file_name = $str.“.“.end($file_types);/是否上传成功$tmp_file = $filetmp_name;if (!copy($tmp_file,$savePath.$file_name)$this-show_msg(“上传失败“,“/search/patentStatistics/uploa

4、dRawdata“);if($tableid=“1“)$rawdata_obj = $this-rawdata_pctmodel;elseif($tableid=“2“)$rawdata_obj = $this-rawdata_applymodel;elseif($tableid=“3“)$rawdata_obj = $this-rawdata_authmodel;elseif($tableid=“4“)$rawdata_obj = $this-rawdata_validmodel;else$this-show_msg(“您要导入的数据表不存在!“,“/search/patentStatist

5、ics/uploadRawdata“);if($rawdata_obj)$fields = $rawdata_obj-returnFields();else$this-show_msg(“未能指定明确的表!“,“/search/patentStatistics/uploadRawdata“);/定义导入失败记录的文档$logfile = $savePath.$str.txt;/读取 excel,存成数组,该数组的 key 是从 1 开始$res = $this-excelToArray($savePath.$file_name,end($file_types);/echo 12321321;e

6、xit;/如果有表头,则过滤掉第一行if($table_head)unset($res1);/循环写入,不一次性写入,防止有错误的记录;错误记录会记录下第一个字段到 txt 文档中去foreach($res as $k =$v)foreach($fields as $key=$val)if($v$key=null)$v$key = null;$data$val = $v$key;/该字段比较特殊,必须导入表中都有该字段$datamonth_number = $month_number;$result = $rawdata_obj-addSave($data);unset($data);if(!

7、$result)$this -logFile($logfile,$v0);if(file_get_contents($logfile)return $logfile;elsereturn true;/*方法名:excelToArray*作用:【私有】将 excel 数据转换成数组*param1 :filename excel 文件名*param2 :filetype excel 格式(xls、xlsx、csv)*param3 :encode 编码格式,默认 utf8*return :返回 2 维数组,最小的 key 为 1*date:2015/11/26*author :dingling*/p

8、rivate function excelToArray($filename,$filetype,$encode=utf-8)if(strtolower($filetype)=xls)$objReader = PHPExcel_IOFactory:createReader(Excel5);elseif(strtolower($filetype)=xlsx)$objReader = PHPExcel_IOFactory:createReader(Excel2007);elseif(strtolower($filetype)=csv)$objReader = PHPExcel_IOFactory:

9、createReader(CSV);$objReader-setReadDataOnly(true);$objPHPExcel = $objReader-load($filename);$objWorksheet = $objPHPExcel-getActiveSheet();$highestRow = $objWorksheet-getHighestRow();$highestColumn = $objWorksheet-getHighestColumn();$highestColumnIndex = PHPExcel_Cell:columnIndexFromString($highestC

10、olumn);$excelData = array();for ($row = 1; $row getCellByColumnAndRow($col, $row)-getValue();return $excelData;二、导出(该功能支持页面上 html 中 table 表格直接导出)1、前端代码专利数据检索平台 2015 年 08 月无标题文档.body_index background:none !important;#mian width:95%; margin:20px auto;.table margin-top:20px;.table thead trtext-align:ce

11、nter;.table th font-weight:bold; vertical-align:middle;.table td vertical-align:middle;.table input,.table textarea,.table selectmargin-bottom:0px;.title h4 border-bottom:2px solid #01AFD4; padding-bottom:8px;.title amargin-top:-50px;.titlepadding-bottom:10px;.handle_labelfloat:left;margin-top: 5px;

12、margin-left: 15px; width:100px;text-align:right;.navwidth:auto !important;background:none !important;.table2 margin-top:0px !important; margin-bottom:0px !important;.hidedisplay:none;.mainlevel DIV width:1050px;#mian width:95%; margin:20px auto;.table margin-top:20px;.table thead trtext-align:center

13、;.table th font-weight:bold; vertical-align:middle;.table tdtext-align:center;.table input,.table textarea,.table selectmargin-bottom:0px;.redcolor:red;导出2015 年 08 月北京地区各区县专利授权情况排序区县当月累计发明实用新型外观设计三种专利申请中个人职务小计大专院校科研单位企业机关团体总计681420883763963828598641253649201181海淀区2157823103330124619112643371229812朝阳

14、区1181569407205192989649282583西城区10952597587851104410191001144昌平区416782251135536134531845东城区39310026231373560934076丰台区388842644099289166220927大兴区38784254495533216131418顺义区3042122855192850028509通州区16418109372913562127010石景山区1473382321013708128111房山区66752714522149012怀柔区5874479490049013密云区23118461700170

15、14平谷区2111732190019015门头沟区1027146006016延庆区303003003017其他110001001018北京经济技术开发区191671121214177011760注:开发区数据不计算在合计总数中window.onload=function()$(“#export_data“).click(function()/获取标题var title = $(“.table“).find(“tr“).eq(0).find(th).html();/获取总行数var line_num = $(“.table tr“).length;/获取最大列数var max_col_num = $(“.table“).find(“tr“).eq(0).find(th).attr(colspan);/获取各行列数 数组 col_num_arr 字符串 col_num_strvar col_num_arr = new Array();/获取各行 td 或者 th 的个数var total_td_num = 0;for(var i=0;i2、后端代码/*方法名:exportData*作用:导出数据*date2015/03/26*author dingling*return excel 文件路径*/public function exportData

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号