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 相关文章推荐
基于pear auth实现登录验证
Feb 26 PHP
php 修改zen-cart下单和付款流程以防止漏单
Mar 08 PHP
Windows下安装Memcached的步骤说明
Apr 25 PHP
smarty模板嵌套之include与fetch性能测试
Dec 05 PHP
php中将数组存到文件里的实现代码
Jan 19 PHP
php时区转换转换函数
Jan 07 PHP
实现获取http内容的php函数分享
Feb 16 PHP
简单的php新闻发布系统教程
May 09 PHP
Laravel 5框架学习之表单
Apr 08 PHP
PHP简单处理表单输入的特殊字符的方法
Feb 03 PHP
PHP框架实现WebSocket在线聊天通讯系统
Nov 21 PHP
PHP执行普通shell命令流程解析
Aug 24 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
一个用mysql_odbc和php写的serach数据库程序
2006/10/09 PHP
用mysql内存表来代替php session的类
2009/02/01 PHP
php小偷相关截取函数备忘
2010/11/28 PHP
MooBox 基于Mootools的对话框插件
2012/01/20 Javascript
IE的fireEvent方法概述及应用
2013/02/22 Javascript
js实现遮罩层弹出框的方法
2015/01/15 Javascript
JS+CSS模拟可以无刷新显示内容的留言板实例
2015/03/03 Javascript
jQuery匹配文档链接并添加class的方法
2015/06/26 Javascript
jQuery 全选 全部选 反选 实现代码
2016/08/17 Javascript
jQuery实现的自动加载页面功能示例
2016/09/04 Javascript
实例分析浏览器中“JavaScript解析器”的工作原理
2016/12/12 Javascript
js实现滑动到页面底部自动加载更多功能
2017/02/15 Javascript
vue插件vue-resource的使用笔记(小结)
2017/08/04 Javascript
vue2.0 资源文件assets和static的区别详解
2018/04/08 Javascript
一次微信小程序内地图的使用实战记录
2019/09/09 Javascript
基于JS实现父组件的请求服务过程解析
2019/10/14 Javascript
vuex state中的数组变化监听实例
2019/11/06 Javascript
vue使用Sass时报错问题的解决方法
2020/10/14 Javascript
[43:24]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第二场 12.12
2020/12/17 DOTA
详解Python函数作用域的LEGB顺序
2016/05/14 Python
从CentOS安装完成到生成词云python的实例
2017/12/01 Python
利用Python在一个文件的头部插入数据的实例
2018/05/02 Python
Django框架实现逆向解析url的方法
2018/07/04 Python
Django的models模型的具体使用
2019/07/15 Python
python飞机大战pygame碰撞检测实现方法分析
2019/12/17 Python
如何解决tensorflow恢复模型的特定值时出错
2020/02/06 Python
Python判断三段线能否构成三角形的代码
2020/04/12 Python
Python 在 VSCode 中使用 IPython Kernel 的方法详解
2020/09/05 Python
python 如何快速复制序列
2020/09/07 Python
用sleep间隔进行python反爬虫的实例讲解
2020/11/30 Python
MySQL面试题目集锦
2016/04/14 面试题
后勤副校长自我鉴定
2013/10/13 职场文书
国际贸易专业个人求职信格式
2014/02/02 职场文书
tensorflow中的数据类型dtype用法说明
2021/05/26 Python
JPA如何使用entityManager执行SQL并指定返回类型
2021/06/15 Java/Android
HTTP中的Content-type详解
2022/01/18 HTML / CSS