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 相关文章推荐
跟我学Laravel之安装Laravel
Oct 15 PHP
ThinkPHP中Session用法详解
Nov 29 PHP
php不使用copy()函数复制文件的方法
Mar 13 PHP
php结合正则批量抓取网页中邮箱地址
May 19 PHP
ajax+php控制所有后台函数调用
Jul 15 PHP
详解js异步文件加载器
Jan 24 PHP
PHP创建文件,并向文件中写入数据,覆盖,追加的实现代码
Mar 25 PHP
php微信开发接入
Aug 27 PHP
ThinkPHP中调用PHPExcel的实现代码
Apr 08 PHP
基于ThinkPHP实现的日历功能实例详解
Apr 15 PHP
详解如何实现Laravel的服务容器的方法示例
Apr 15 PHP
php解析非标准json、非规范json的方式实例
Dec 10 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 查找字符串常用函数介绍
2012/06/07 PHP
php之CodeIgniter学习笔记
2013/06/17 PHP
修改destoon会员公司的伪静态中的com目录的方法
2014/08/21 PHP
PHP静态成员变量
2017/02/14 PHP
javascript引用对象的方法
2007/01/11 Javascript
!DOCTYPE声明对JavaScript的影响分析
2010/04/12 Javascript
javascript中setTimeout使用指南
2015/07/26 Javascript
Backbone.js框架中简单的View视图编写学习笔记
2016/02/14 Javascript
浅谈jQuery中ajaxPrefilter的应用
2016/08/01 Javascript
jQuery EasyUI 获取tabs的实例解析
2016/12/06 Javascript
详解jQuery uploadify文件上传插件的使用方法
2016/12/16 Javascript
jQuery上传多张图片带进度条样式(DEMO)
2017/03/02 Javascript
JavaScript实现类似淘宝的购物车效果
2017/03/16 Javascript
详解vue axios中文文档
2017/09/12 Javascript
探讨Vue.js的组件和模板
2017/10/27 Javascript
Async/Await替代Promise的6个理由
2019/06/15 Javascript
Vue发布订阅模式实现过程图解
2020/04/30 Javascript
Python 分析Nginx访问日志并保存到MySQL数据库实例
2014/03/13 Python
基于Python闭包及其作用域详解
2017/08/28 Python
python 动态加载的实现方法
2017/12/22 Python
Python Xml文件添加字节属性的方法
2018/03/31 Python
Python实现时钟显示效果思路详解
2018/04/11 Python
Python 根据日志级别打印不同颜色的日志的方法示例
2019/08/08 Python
python RC4加密操作示例【测试可用】
2019/09/26 Python
python pptx复制指定页的ppt教程
2020/02/14 Python
Lookfantastic台湾:英国彩妆美发保养购物网
2018/03/26 全球购物
优纳科技软件测试面试题
2012/05/15 面试题
年会活动策划方案
2014/01/23 职场文书
酒店经理职责
2014/01/30 职场文书
体育教学随笔感言
2014/02/24 职场文书
如何写好建议书
2014/03/13 职场文书
舞蹈兴趣小组活动总结
2014/07/07 职场文书
幼儿园教师师德师风演讲稿:我自豪我是一名幼师
2014/09/10 职场文书
项目建议书
2015/02/04 职场文书
签订劳动合同通知书
2015/04/16 职场文书
python代码实现备忘录案例讲解
2021/07/26 Python