phpExcel与jq的ajax
Posted 小数点就是问题
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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([email protected]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:问题
以上是关于phpExcel与jq的ajax的主要内容,如果未能解决你的问题,请参考以下文章