有时我们的需求总会出现一些自己觉得很奇怪的需求,

但如果效果出来了,又觉得很新颖,然后这些新颖的

东西,就是这些奇怪的需求而来的,所以别对自己不能

的事情觉得不应该有,而是挑战它,用自己所懂得语言

完成它。

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相关推荐

  1. axios如何在nodejs项目里封装_【面经】jq 中 ajax 和 axios 区别,瀑布流布局,添加删除事件...

    [jq 中 ajax 和 axios 区别] jq的ajax 1.本身是针对MVC的编程,不符合现在前端MVVM的浪潮 2.JQuery整个项目太大,单纯使用ajax却要引入整个JQuery不合理 a ...

  2. jquery中ajax完整例子get,jq的ajax方法,jquery中ajax完整例子

    jq的ajax方法,jquery中ajax完整例子 相较与js异步对象的繁琐,jq的ajax对象结构更加清晰 一:ajax对象简述 ajax(Asynchronous JavaScript and X ...

  3. ajax ssm 页面跳转_SSM用jq整合Ajax入门案例讲解

    SSM用Jq整合Ajax 我就是一个程序小白,很多原理都不懂,下面的内容只能让新手知道怎么用. Ajax 废话少说,总之像点赞,评论,之类的很多功能没必要进行页面跳转,更没必要牺牲整个页面来刷新局部区 ...

  4. jq请求Ajax数据

    <!DOCTYPE html> <html><head><meta charset="UTF-8"><title>jq请 ...

  5. 手把手教你用JQ调用ajax(附免费永久后台URL)

    关于jQ的Ajax操作 前沿 关于AJAX(百度百科) JQ调用AJAX实例 1.jQuery的load()方法 2.jquery的getJSON方法 3.jquery的$.get()方法 4.jqu ...

  6. 什么是ajax,一篇文章带你了解ajax(JQ的ajax封装讲解)

    一:什么是ajax ajax是异步编程,可以让用户不用刷新页面就可以访问到服务器的数据,比如我们常见的今日头条,打开一个页面他页面中的数据并不是很多,但是我们在不停向下滚动的时候,我们并没有刷新页面, ...

  7. jq的ajax和模块引擎

    之前我们写ajax都是用原生js写的,但这样写有时候就显得有点繁琐,其实我们也可以用jq来写,这样更简单,但jq写法跟原生的有点不一样,他可以分为单个类型,和一个总的: 第一种是$.get: 第二种是 ...

  8. HTML_简单JQ的AJAX响应式交互

    AJAX技术是动态交互式技术,基于jq实现! AJAX是不需要刷新页面就可以达到更新页面的方式,类似Windows下的局部刷新机制! 以往的HTMLget请求一个文件时,获取到了文件内容然后需要刷新才 ...

  9. jq的ajax上传文件

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

最新文章

  1. qtablewidget 数据量大效率很低_让大牛带你走进大数据分析:R基础及应用的潮流尖端,享受RHadoop...
  2. MapReduce Java API实例-排序
  3. hdu 4831(线段树---待解决)
  4. Matlab生成各种伪随机信号_idinput指令
  5. ThreadPoolExecuotor源码参考
  6. 前端学习(2048)vue之电商管理系统电商系统之实现首页内容自定制
  7. C---队列,栈的实现
  8. 分治之快速排序以及快速排序为何最快
  9. 导航栏 UITabBarController等颜色的区别
  10. rsa 2048 java_使用SHA-256和RSA 2048进行加密和签名
  11. 软件测试必学之python+unittest+requests+HTMLRunner编写接口自动化测试集
  12. 集算器(仓库版)发布,黑科技获得用户好评
  13. HashTable与ConcurrentHashMap的区别
  14. 高通骁龙200、400、600、800处理器规格大全
  15. 前端 HTML5+CSS3基础知识一
  16. 写一个最简单的mysql编程_要学简单的数据库编程!
  17. vue实现签名和两张图片合成一张
  18. 九爷带你了解 nginx 的反向代理
  19. 使用有道云笔记的三个技巧
  20. 非常漂亮的放焰火效果的Applet程序

热门文章

  1. java B2B2C 多租户电子商城系统- 整合企业架构的技术点
  2. Mysql 远程连接的问题 2003 - Can't connect to MySQL server on '39.106.187.107' (60 Operation timed out)...
  3. Unity3D——SendMessage方法的使用
  4. php课程---JavaScript与Jquery的区别(转)
  5. rails gem devise 整死我算了
  6. mysql客户端程序介绍
  7. 日常护理常识以及化妆品的选购 - 健康程序员,至尚生活!
  8. web developer tips (29):在web应用项目里启用“编辑并继续”功能
  9. 如何在VB中实现ActiveX控件的IobjectSafety接口
  10. arm linux 时间获取,菜鸟自学ARM:linux下编程获取系统时间和设置时间