php 上传 读取 excel,php上传excel表格并获取数据

这个是最近需要做的一个功能,在网上也查看了很多相关的文章,基本上大同小异,在这里整理一下。

一:首先是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);

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值