php上传excel表格并获取数据


Posted in PHP onApril 27, 2017

这个是最近需要做的一个功能,在网上也查看了很多相关的文章,基本上大同小异,在这里整理一下。

一:首先是html部分

<html>
<body>
<form action="upload_file.php" method="post" enctype="multipart/form-data">
<input type="file" name="file" id="file" /> 
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>

二:就是去接收和处理上传的文件了。php部分

//文件存放的路径
$save_path = "/upload/"; 

//文件存放的文件夹
$save_files = $this->geturl();

这个是以年月日新建的文件夹,仅供参考。

//先检查当前文件夹是否存在,如不存在,创建文件夹
function geturl()
{
$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);
}

//return $path."/";
return $str."/";
}

//这个是上传文件到需要保存的位置,
if (!@move_uploaded_file($_FILES[$upload_name]["tmp_name"], $save_path.$file_path)) {
$error = "error|上传文件错误.";
exit(0);
}

下面开始获取你上传的excel数据了

//获取上传表格的数据
$file_name = $save_path.$file_path;    //获取上传文件的地址名称
require_once APPPATH . 'views/IDC/config/PHPExcel.php'; 
require_once APPPATH . 'views/IDC/config/PHPExcel/IOFactory.php';
require_once APPPATH . 'views/IDC/config/PHPExcel/Cell.php';

$objReader = PHPExcel_IOFactory::createReader('excel2007'); //建立reader对象

$objPHPExcel = $objReader->load($file_name);
$sheet = $objPHPExcel->getSheet();
$highestRow = $sheet->getHighestDataRow(); // 取得总行数

$highestColumn_num = PHPExcel_Cell::columnIndexFromString($sheet->getHighestDataColumn()); //列数

//$columns = PHPExcel_Cell::getColumn($highestColumn_num);
$columns = array('A','B','C','D','E','F','G');

$arr_result = array();
$dealer_element = array();

for ($j = 2; $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;
//这里可以根据要求,做一些数据的验证
}

$arr_result[$j] = $dealer_element;
}
echo json_encode($arr_result);

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木

PHP 相关文章推荐
php实现的在线人员函数库
Apr 09 PHP
PHP CLI模式下的多进程应用分析
Jun 03 PHP
最常用的8款PHP调试工具
Jul 06 PHP
PHP中上传多个文件的表单设计例子
Nov 19 PHP
yii实现CheckBox复选框在同一行显示的方法
Dec 03 PHP
php微信公众号js-sdk开发应用
Nov 28 PHP
thinkPHP模板引擎用法示例
Dec 08 PHP
php 调用ffmpeg获取视频信息的简单实现
Apr 03 PHP
postman的安装与使用方法(模拟Get和Post请求)
Aug 06 PHP
PHP图像处理技术实例总结【绘图、水印、验证码、图像压缩】
Dec 08 PHP
Thinkphp整合阿里云OSS图片上传实例代码
Apr 28 PHP
详解Laravel制作API接口
May 31 PHP
PHP基于SMTP协议实现邮件发送实例代码
Apr 27 #PHP
PHP编程实现多维数组按照某个键值排序的方法小结【2种方法】
Apr 27 #PHP
PHP使用第三方即时获取物流动态实例详解
Apr 27 #PHP
利用PHPExcel实现Excel文件的写入和读取
Apr 26 #PHP
PHP基于接口技术实现简单的多态应用完整实例
Apr 26 #PHP
PHP基于简单递归函数求一个数阶乘的方法示例
Apr 26 #PHP
php编程实现简单的网页版计算器功能示例
Apr 26 #PHP
You might like
点评山进PR-D3L三波段收音机
2021/03/02 无线电
PHP 文件上传全攻略
2010/04/28 PHP
PHP文件操作实现代码分享
2011/09/01 PHP
jQuery 事件队列调整方法
2009/09/18 Javascript
jQuery实现表单input中提示文字value随鼠标焦点移进移出而显示或隐藏的代码
2010/03/21 Javascript
基于JQuery实现异步刷新的代码(转载)
2011/03/29 Javascript
终于解决了IE8不支持数组的indexOf方法
2013/04/03 Javascript
parentElement,srcElement的使用小结
2014/01/13 Javascript
JavaScript中setUTCFullYear()方法的使用简介
2015/06/12 Javascript
js数组如何添加json数据及js数组与json的区别
2015/10/27 Javascript
js实现拖拽效果(构造函数)
2015/12/14 Javascript
JavaScript中的this,call,apply使用及区别详解
2016/01/29 Javascript
前端面试知识点锦集(JavaScript篇)
2016/12/28 Javascript
微信小程序 弹窗输入组件的实现解析
2019/08/12 Javascript
微信小程序3D轮播实现代码
2019/09/19 Javascript
解决layer.confirm快速点击会重复触发事件的问题
2019/09/23 Javascript
Typescript3.9 常用新特性一览(推荐)
2020/05/14 Javascript
Vue实现可移动水平时间轴
2020/06/29 Javascript
[04:11]2014DOTA2国际邀请赛 CIS遗憾出局梦想不灭
2014/07/09 DOTA
[32:26]EG vs IG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[06:45]DOTA2-DPC中国联赛 正赛 Magma vs LBZS 选手采访
2021/03/11 DOTA
python获取android设备的GPS信息脚本分享
2015/03/06 Python
详谈在flask中使用jsonify和json.dumps的区别
2018/03/26 Python
利用pyinstaller将py文件打包为exe的方法
2018/05/14 Python
详解Python3.6的py文件打包生成exe
2018/07/13 Python
实例讲解Python脚本成为Windows中运行的exe文件
2019/01/24 Python
python2 中 unicode 和 str 之间的转换及与python3 str 的区别
2019/07/25 Python
python 使用cx-freeze打包程序的实现
2020/03/14 Python
CSS3 text-shadow实现文字阴影效果
2016/02/24 HTML / CSS
AmazeUI在模态框中嵌入表单形成模态输入框
2020/08/20 HTML / CSS
Tessabit日本:集世界奢侈品和设计师品牌的意大利精品买手店
2020/01/07 全球购物
革命先烈的英雄事迹材料
2014/02/15 职场文书
校园环保标语
2014/06/13 职场文书
学校师德师风整改方案
2014/10/28 职场文书
信息技术研修心得体会
2016/01/08 职场文书
Mysql中存储引擎的区别及比较
2021/06/04 MySQL