phpExcel与jq的ajax
有时我们的需求总会出现一些自己觉得很奇怪的需求,
但如果效果出来了,又觉得很新颖,然后这些新颖的
东西,就是这些奇怪的需求而来的,所以别对自己不能
的事情觉得不应该有,而是挑战它,用自己所懂得语言
完成它。
xls格式的文件在页面展示就是一个感觉就是前端无法实现的活,但
却可以实现,只是它需要后台帮忙转换,应该数据流在前端无法被转换
成我们所需的数据结构。
php:
<?php error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); date_default_timezone_set('Europe/London'); define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');/*上传*/ //文件存放的路径 $save_path = "./upload/";//文件存放的文件夹 $save_files = geturl(); //PHP_OS 系统 getcwd() 获取当前工作目录 // function geturl() {$arr=array();$year = date('Y');$month= date('m');$day= date('d');$str = $year.$month.$day;if(strtoupper(substr(PHP_OS,0,3))=='WIN'){$path = getcwd() . "/upload/".$str;}else{$path = "/mnt/erp/".$str;}if(!file_exists($path))//判断文件夹是否存在 {mkdir($path,0777,true);}array_push($arr,$str."/");array_push($arr,$path."/");return $arr; } $file_name = $save_files[1].$_FILES["file"]["name"];//获取上传文件的地址名称 $file_path=$save_path.$save_files[0].$_FILES["file"]["name"]; if(!@move_uploaded_file($_FILES["file"]["tmp_name"],$file_name)){echo "error|上传文件错误.";exit(0); }include_once('.\PHPExcel-1.8\classes\PHPExcel.php'); include_once('.\PHPExcel-1.8\classes\PHPExcel\IOFactory.php'); include_once('.\PHPExcel-1.8\classes\PHPExcel\Cell.php'); /*echo date('H:i:s') , " Create new PHPExcel object" , EOL;*/$objReader = PHPExcel_IOFactory::createReader('excel2007');//建立reader对象 $objPHPExcel = $objReader->load($file_path);$sheet = $objPHPExcel->getSheet(0); $highestRow = $sheet->getHighestDataRow(); // 取得总行数$highestColumn_num = PHPExcel_Cell::columnIndexFromString($sheet->getHighestDataColumn());//列数//$columns = (new PHPExcel_Cell())->getColumn($highestColumn_num); $allColumns = array('A','B','C','D','E','F','G'); $columns = array(); for($i =0;$i < $highestColumn_num;$i++){$columns[$i]=$allColumns[$i]; } $arr_result = array(); $dealer_element = array(); for ($j = 1; $j <= $highestRow; $j++) { for ($k = 0; $k < count($columns); $k++) { //读取单元格 $value = $objPHPExcel->getActiveSheet()->getCell($columns[$k] . $j)->getValue();//这个就是获取每个单元格的值$value = trim($value); if (empty($value)) { $value = NULL; } $dealer_element[$k] = $value; //这里可以根据要求,做一些数据的验证 }array_push($arr_result,$dealer_element); } echo json_encode($arr_result);
html,js:
<html> <body> <form name="form" id="form"><input type="file" name="file" id="file" /> <input type="button" id="submit" value="Submit" /> </form> <div id="div"></div> <script src="./jquery.js"></script> <script> var oSubmit=$("#submit"),oFile=$("#file"); var form=document.forms.form;oSubmit.click(function(){/*因为jquery的ajax对FormData转换成表单数据会拒绝错误代码:illegal invocation所以需要设置参数contentType:false,cache: false,processData:false,*/var formData=new FormData($("#form")[0]);$.ajax({url:"./index.php",type:"post",contentType:false,cache: false,processData:false,data:formData,success:function(rps){console.log(rps);tableHtml(JSON.parse(rps));}});return false; });function tableHtml(objArr){var oTable=$("<table border='1'>");var oTr,oTd;for(var i=0;i<objArr.length;i++){oTr=$("<tr>");for(var j=0;j<objArr[i].length;j++){oTd=$("<td>").html(objArr[i][j]?objArr[i][j]:"");oTr.append(oTd);}oTable.append(oTr);}$("#div").append(oTable); } </script></body> </html>
jquery-ajax:问题
转载于:https://www.cnblogs.com/zhangzhicheng/p/6847619.html
phpExcel与jq的ajax相关推荐
- axios如何在nodejs项目里封装_【面经】jq 中 ajax 和 axios 区别,瀑布流布局,添加删除事件...
[jq 中 ajax 和 axios 区别] jq的ajax 1.本身是针对MVC的编程,不符合现在前端MVVM的浪潮 2.JQuery整个项目太大,单纯使用ajax却要引入整个JQuery不合理 a ...
- jquery中ajax完整例子get,jq的ajax方法,jquery中ajax完整例子
jq的ajax方法,jquery中ajax完整例子 相较与js异步对象的繁琐,jq的ajax对象结构更加清晰 一:ajax对象简述 ajax(Asynchronous JavaScript and X ...
- ajax ssm 页面跳转_SSM用jq整合Ajax入门案例讲解
SSM用Jq整合Ajax 我就是一个程序小白,很多原理都不懂,下面的内容只能让新手知道怎么用. Ajax 废话少说,总之像点赞,评论,之类的很多功能没必要进行页面跳转,更没必要牺牲整个页面来刷新局部区 ...
- jq请求Ajax数据
<!DOCTYPE html> <html><head><meta charset="UTF-8"><title>jq请 ...
- 手把手教你用JQ调用ajax(附免费永久后台URL)
关于jQ的Ajax操作 前沿 关于AJAX(百度百科) JQ调用AJAX实例 1.jQuery的load()方法 2.jquery的getJSON方法 3.jquery的$.get()方法 4.jqu ...
- 什么是ajax,一篇文章带你了解ajax(JQ的ajax封装讲解)
一:什么是ajax ajax是异步编程,可以让用户不用刷新页面就可以访问到服务器的数据,比如我们常见的今日头条,打开一个页面他页面中的数据并不是很多,但是我们在不停向下滚动的时候,我们并没有刷新页面, ...
- jq的ajax和模块引擎
之前我们写ajax都是用原生js写的,但这样写有时候就显得有点繁琐,其实我们也可以用jq来写,这样更简单,但jq写法跟原生的有点不一样,他可以分为单个类型,和一个总的: 第一种是$.get: 第二种是 ...
- HTML_简单JQ的AJAX响应式交互
AJAX技术是动态交互式技术,基于jq实现! AJAX是不需要刷新页面就可以达到更新页面的方式,类似Windows下的局部刷新机制! 以往的HTMLget请求一个文件时,获取到了文件内容然后需要刷新才 ...
- jq的ajax上传文件
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...
最新文章
- qtablewidget 数据量大效率很低_让大牛带你走进大数据分析:R基础及应用的潮流尖端,享受RHadoop...
- MapReduce Java API实例-排序
- hdu 4831(线段树---待解决)
- Matlab生成各种伪随机信号_idinput指令
- ThreadPoolExecuotor源码参考
- 前端学习(2048)vue之电商管理系统电商系统之实现首页内容自定制
- C---队列,栈的实现
- 分治之快速排序以及快速排序为何最快
- 导航栏 UITabBarController等颜色的区别
- rsa 2048 java_使用SHA-256和RSA 2048进行加密和签名
- 软件测试必学之python+unittest+requests+HTMLRunner编写接口自动化测试集
- 集算器(仓库版)发布,黑科技获得用户好评
- HashTable与ConcurrentHashMap的区别
- 高通骁龙200、400、600、800处理器规格大全
- 前端 HTML5+CSS3基础知识一
- 写一个最简单的mysql编程_要学简单的数据库编程!
- vue实现签名和两张图片合成一张
- 九爷带你了解 nginx 的反向代理
- 使用有道云笔记的三个技巧
- 非常漂亮的放焰火效果的Applet程序
热门文章
- java B2B2C 多租户电子商城系统- 整合企业架构的技术点
- Mysql 远程连接的问题 2003 - Can't connect to MySQL server on '39.106.187.107' (60 Operation timed out)...
- Unity3D——SendMessage方法的使用
- php课程---JavaScript与Jquery的区别(转)
- rails gem devise 整死我算了
- mysql客户端程序介绍
- 日常护理常识以及化妆品的选购 - 健康程序员,至尚生活!
- web developer tips (29):在web应用项目里启用“编辑并继续”功能
- 如何在VB中实现ActiveX控件的IobjectSafety接口
- arm linux 时间获取,菜鸟自学ARM:linux下编程获取系统时间和设置时间