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 radio 单选框获取与保持值的实现代码
May 15 PHP
Drupal读取Excel并导入数据库实例
Mar 02 PHP
fckeditor上传文件按日期存放及重命名方法
May 22 PHP
PHP实现多文件上传的方法
Jul 08 PHP
php计算title标题相似比的方法
Jul 29 PHP
CodeIgniter配置之database.php用法实例分析
Jan 20 PHP
Yii实现Command任务处理的方法详解
Jul 14 PHP
php 运算符与表达式详细介绍
Nov 30 PHP
PHP面向对象之工作单元(实例讲解)
Jun 26 PHP
php的优点总结 php有哪些优点
Jul 19 PHP
Yii框架使用PHPExcel导出Excel文件的方法分析【改进版】
Jul 24 PHP
thinkPHP框架乐观锁和悲观锁实例分析
Oct 30 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
Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
2016/03/07 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
2021/03/09 PHP
JavaScript与DropDownList 区别分析
2010/01/01 Javascript
各浏览器对click方法的支持差异小结
2011/07/31 Javascript
JavaScript实现数字数组按照倒序排列的方法
2015/04/06 Javascript
使用HTML5+Boostrap打造简单的音乐播放器
2016/08/05 Javascript
JavaScript实战之菜单特效
2016/08/16 Javascript
DOM 事件的深入浅出(二)
2016/12/05 Javascript
Bootstrap 3多级下拉菜单实例
2017/11/23 Javascript
vue-cli脚手架-bulid下的配置文件
2018/03/27 Javascript
vue2单元测试环境搭建
2018/05/24 Javascript
angular6.0开发教程之如何安装angular6.0框架
2018/06/29 Javascript
详解如何制作并发布一个vue的组件的npm包
2018/11/10 Javascript
jQuery内容选择器与表单选择器实例分析
2019/06/28 jQuery
laypage.js分页插件使用方法详解
2019/07/27 Javascript
js实现九宫格布局效果
2020/05/28 Javascript
[05:14]辉夜杯主赛事第二日 RECAP精彩回顾
2015/12/27 DOTA
Python生成随机MAC地址
2015/03/10 Python
Python语言描述最大连续子序列和
2017/12/05 Python
python使用参数对嵌套字典进行取值的方法
2019/04/26 Python
python自动化测试无法启动谷歌浏览器问题
2019/10/10 Python
Python序列对象与String类型内置方法详解
2019/10/22 Python
使用 Supervisor 监控 Python3 进程方式
2019/12/05 Python
基于Python绘制美观动态圆环图、饼图
2020/06/03 Python
如何Tkinter模块编写Python图形界面
2020/10/14 Python
python 获取谷歌浏览器保存的密码
2021/01/06 Python
美国波道夫·古德曼百货官网:Bergdorf Goodman
2017/11/07 全球购物
Ruby如何定义一个类
2012/10/08 面试题
大学生毕业鉴定
2014/01/31 职场文书
父母对孩子说的话
2014/04/12 职场文书
心理咨询专业自荐信
2014/07/07 职场文书
行政助理岗位职责范本
2015/04/11 职场文书
pytorch实现线性回归以及多元回归
2021/04/11 Python
python not运算符的实例用法
2021/06/30 Python
redis不能访问本机真实ip地址的解决方案
2021/07/07 Redis