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函数解决SQL injection
Oct 09 PHP
PHP 采集心得技巧
May 15 PHP
全世界最小的php网页木马一枚 附PHP木马的防范方法
Oct 09 PHP
php 向访客和爬虫显示不同的内容
Nov 09 PHP
Trying to clone an uncloneable object of class Imagic的解决方法
Jan 11 PHP
解析php如何将日志写进syslog
Jun 28 PHP
分享下PHP register_globals 值为on与off的理解
Sep 26 PHP
PHP中IP地址与整型数字互相转换详解
Aug 20 PHP
利用laravel搭建一个迷你博客实战教程
Aug 13 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
Aug 29 PHP
浅析PHP7的多进程及实例源码
Apr 14 PHP
PHP实现简单注册登录系统
Dec 28 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
PHP中的函数-- foreach()的用法详解
2013/06/24 PHP
PHP中的静态变量及static静态变量使用详解
2015/11/05 PHP
PHP 命名空间和自动加载原理与用法实例分析
2020/04/29 PHP
广告切换效果(缓动切换)
2009/05/27 Javascript
浅析javascript中函数声明和函数表达式的区别
2015/02/15 Javascript
简介JavaScript中substring()方法的使用
2015/06/06 Javascript
JavaScript操作select元素和option的实例代码
2016/01/29 Javascript
AngularJs学习第五篇从Controller控制器谈谈$scope作用域
2016/06/08 Javascript
Javascript 5种方法实现过滤删除前后所有空格
2016/06/22 Javascript
浅谈JavaScript中的分支结构
2016/07/01 Javascript
AngularJS入门教程之ng-class 指令用法
2016/08/01 Javascript
浅谈js停止事件冒泡 阻止浏览器的默认行为(阻止超连接 #)
2017/02/08 Javascript
canvas实现钟表效果
2017/02/13 Javascript
基于canvas的二维码邀请函生成插件
2017/02/14 Javascript
vue-cli webpack 开发环境跨域详解
2017/05/18 Javascript
在小程序中使用canvas的方法示例
2018/09/17 Javascript
vue中设置、获取、删除cookie的方法
2018/09/21 Javascript
解决layui弹出层layer的area过大被遮挡的问题
2019/09/21 Javascript
vue动态禁用控件绑定disable的例子
2019/10/28 Javascript
JavaScript前后端JSON使用方法教程
2020/11/23 Javascript
python进阶教程之动态类型详解
2014/08/30 Python
python中的闭包用法实例详解
2015/05/05 Python
Python cookbook(数据结构与算法)从任意长度的可迭代对象中分解元素操作示例
2018/02/13 Python
Python数据处理numpy.median的实例讲解
2018/04/02 Python
使用50行Python代码从零开始实现一个AI平衡小游戏
2018/11/21 Python
解决pyttsx3无法封装的问题
2018/12/24 Python
基于Python爬取搜狐证券股票过程解析
2020/11/18 Python
搭建pypi私有仓库实现过程详解
2020/11/25 Python
css3 实现圆形旋转倒计时
2018/02/24 HTML / CSS
html5超简单的localStorage实现记住密码的功能实现
2017/09/07 HTML / CSS
完美实现CSS垂直居中的11种方法
2021/03/27 HTML / CSS
中药学专业求职信
2014/05/31 职场文书
超市创业计划书
2014/09/15 职场文书
群众路线党员自我评议范文2014
2014/09/24 职场文书
安全生产会议制度
2015/08/06 职场文书
Spring Bean的实例化之属性注入源码剖析过程
2021/06/13 Java/Android