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 相关文章推荐
递归列出所有文件和目录
Oct 09 PHP
PHP 字符串加密函数(在指定时间内加密还原字符串,超时无法还原)
Apr 28 PHP
如何使用php输出时间格式
Aug 31 PHP
php对数组排序的简单实例
Dec 25 PHP
MacOS 安装 PHP的图片裁剪扩展Tclip
Mar 25 PHP
学习php设计模式 php实现模板方法模式
Dec 08 PHP
php用户登录之cookie信息安全分析
May 13 PHP
Yii框架防止sql注入,xss攻击与csrf攻击的方法
Oct 18 PHP
PHP实现获取第一个中文首字母并进行排序的方法
May 09 PHP
PHP大文件分割上传 PHP分片上传
Aug 28 PHP
PHP 7.4中使用预加载的方法详解
Jul 08 PHP
php和html的区别点详细总结
Sep 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
肝肠寸断了解下!盘点史上最伤心的十大动漫
2020/03/04 日漫
PHP安全配置
2006/10/09 PHP
一个程序下载的管理程序(一)
2006/10/09 PHP
php 404错误页面实现代码
2009/06/22 PHP
PHP性能优化 产生高度优化代码
2011/07/22 PHP
php专用数组排序类ArraySortUtil用法实例
2015/04/03 PHP
超强多功能php绿色集成环境详解
2017/01/25 PHP
php实现的PDO异常处理操作分析
2018/12/27 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
IE和firefox浏览器的event事件兼容性汇总
2009/12/06 Javascript
window.onload和$(function(){})的区别介绍
2013/10/30 Javascript
jQuery javaScript捕获回车事件(示例代码)
2013/11/07 Javascript
javascript中文本框中输入法切换的问题
2013/12/10 Javascript
动态加载js、css等文件跨iframe实现
2014/02/24 Javascript
jQuery基础知识点总结(必看)
2016/05/31 Javascript
微信小程序(六):列表上拉加载下拉刷新示例
2017/01/13 Javascript
vue+axios+mock.js环境搭建的方法步骤
2018/08/28 Javascript
vue+node实现图片上传及预览的示例方法
2018/11/22 Javascript
微信小程序实现modal弹出框遮罩层组件(可带文本框)
2020/12/20 Javascript
Python实现大文件排序的方法
2015/07/10 Python
Python写的一个定时重跑获取数据库数据
2016/12/28 Python
pandas实现选取特定索引的行
2018/04/20 Python
Python迭代器与生成器用法实例分析
2018/07/09 Python
python 产生token及token验证的方法
2018/12/26 Python
Python进程间通信 multiProcessing Queue队列实现详解
2019/09/23 Python
python的等深分箱实例
2019/11/22 Python
浅谈Python中的生成器和迭代器
2020/06/19 Python
Pycharm github配置实现过程图解
2020/10/13 Python
使用CSS3制作一个简单的进度条(demo)
2017/05/23 HTML / CSS
校领导推荐信
2013/11/01 职场文书
大学生个人自荐信样本
2014/03/02 职场文书
跟单业务员岗位职责
2014/03/08 职场文书
2014年党员公开承诺践诺书
2014/03/25 职场文书
飞屋环游记观后感
2015/06/08 职场文书
Mysql数据库索引面试题(程序员基础技能)
2021/05/31 MySQL
SpringCloud项目如何解决log4j2漏洞
2022/04/10 Java/Android