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 相关文章推荐
WinXP + Apache +PHP5 + MySQL + phpMyAdmin安装全功略
Jul 09 PHP
php守护进程 加linux命令nohup实现任务每秒执行一次
Jul 04 PHP
php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
Nov 02 PHP
解析PHP计算页面执行时间的实现代码
Jun 18 PHP
php获取网卡的MAC地址支持WIN/LINUX系统
Apr 30 PHP
PHP获取客户端真实IP地址的5种情况分析和实现代码
Jul 08 PHP
php使用mysqli向数据库添加数据的方法
Mar 20 PHP
php获取远程文件内容的函数
Nov 02 PHP
Json_decode 解析json字符串为NULL的解决方法(必看)
Feb 17 PHP
thinkPHP简单导入和使用阿里云OSSsdk的方法
Mar 15 PHP
阿里云PHP SMS短信服务验证码发送方法
Jul 11 PHP
基于laravel where的高级使用方法
Oct 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
重置版游戏视频
2020/04/09 魔兽争霸
Linux下PHP安装mcrypt扩展模块笔记
2014/09/10 PHP
PHP批斗大会之缺失的异常详解
2019/07/09 PHP
通过ifame指向的页面高度调整iframe的高度
2006/10/05 Javascript
使用prototype.js 的时候应该特别注意的几个问题.
2007/04/12 Javascript
另一个javascript小测验(代码集合)
2011/07/27 Javascript
Extjs表单常见验证小结
2014/03/07 Javascript
javascript实现倒计时(精确到秒)
2015/06/26 Javascript
JavaScript sort数组排序方法和自我实现排序方法小结
2016/06/06 Javascript
jquery.serialize() 函数语法及简单实例
2016/07/08 Javascript
什么是JavaScript注入攻击?
2016/09/14 Javascript
详解Vuejs2.0 如何利用proxyTable实现跨域请求
2017/08/03 Javascript
angular指令笔记ng-options的使用方法
2017/09/18 Javascript
如何利用@angular/cli V6.0直接开发PWA应用详解
2018/05/06 Javascript
小程序分享模块超级详解(推荐)
2019/04/10 Javascript
vue实现PC端录音功能的实例代码
2019/06/05 Javascript
解决一个微信号同时支持多个环境网页授权问题
2019/08/07 Javascript
Python中统计函数运行耗时的方法
2015/05/05 Python
在Python中marshal对象序列化的相关知识
2015/07/01 Python
python虚拟环境的安装配置图文教程
2017/10/20 Python
Python中的单继承与多继承实例分析
2018/05/10 Python
解决Atom安装Hydrogen无法运行python3的问题
2019/08/28 Python
python sorted函数原理解析及练习
2020/02/10 Python
python对输出的奇数偶数排序实例代码
2020/12/04 Python
GNC健安喜美国官网:美国第一营养品牌
2016/07/22 全球购物
澳大利亚药房在线:ThePharmacy
2017/10/04 全球购物
美国户外运动商店:Sun & Ski
2018/08/23 全球购物
医药工作岗位求职信分享
2013/12/31 职场文书
公司授权委托书样本
2014/09/15 职场文书
2014年施工员工作总结
2014/11/18 职场文书
志愿者事迹材料
2014/12/26 职场文书
2016关于读书活动的心得体会
2016/01/14 职场文书
新学期新寄语,献给新生们!
2019/11/15 职场文书
总结Pyinstaller打包的高级用法
2021/06/28 Python
Python3中最常用的5种线程锁实例总结
2021/07/07 Python
使用 CSS 轻松实现一些高频出现的奇形怪状按钮
2021/12/06 HTML / CSS