phpexcel导入excel表格
html代码
<form action="{:U('Mall/updExcel')}" method="POST" enctype="multipart/form-data"> //提交form表单到Mall控制器下的upExcel方法中
<div style="float:left;width:41%;">
<div style="float:left;">
<input type='submit' value="更改价格" style="margin: 0px 0px 7px 10px;cursor: pointer;background-color:#C30D23;border:0px;color:#FFFFFF;width:90px;border-radius:5px;padding:3px 0;font-size:13px;"/>
</div>
<div style="float:left;width:45%">
<input type='file' value="" name="import"/>
</div>
<input type="hidden" id="url" name="url" value=""/> //添加一个隐藏域 传递url
</div>
</form>
写ExcelController工具类:此类用来被实例化
<?php
namespace Home\Controller;
use Think\Controller;
include "./Public/Plugin/PHPExcel.class.php";
include "./Public/Plugin/PHPExcel/Writer/Excel5";
include "./Public/Plugin/PHPExcel/IOFactory.php";
class ExcelController extends Controller {
//导入功能
public function updExcel($file){
if(!file_exists($file)){
return array("error"=>0,'message'=>'file not found!');
}
$objReader = \PHPExcel_IOFactory::createReader('Excel5');
$objPHPExcel = $objReader->load($file,$encode='utf-8');
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow(); // 取得总行数
$highestColumn = $sheet->getHighestColumn(); // 取得总列数
$j=0;
for($i=2;$i<=$highestRow;$i++){
$data[$j]['id']= $objPHPExcel->getActiveSheet()->getCell("A".$i)->getValue();
$data[$j]['result_price']= $objPHPExcel->getActiveSheet()->getCell("B".$i)->getValue();
$j++;
}
return $data;
}
下面书写控制器来上传excel表格:此类方法不用把excel表格传递到服务器,直接写入数据:
<?php
namespace Admin\Controller;
use Think\Controller;
use Think\Page;
use Home\Controller\IndexController;
use Common;
use Org\Util\Date;
use Home\Controller\ExcelController;
class MallController extends Controller {
/*商品列表批量导入*/
public function updExcel(){
$excel=new ExcelController();
$goods=M('shop_goods_subinfo');
if(isset($_FILES["import"]) && ($_FILES["import"]["error"] == 0)){
$result = $excel->updExcel($_FILES["import"]["tmp_name"]);
/*
* 业务逻辑代码
* */
$true="";
$false="";
foreach($result as $value){
//$where=array('id'=>$value['id'],'status'=>0);
$where=array(
'code'=>$value['id'],
);
$data=array(
'result_price'=>$value['result_price'],
);
$state=$goods->where($where)->save($data);
if($state > 0){
$true .= ";".$value['id'];
}else{
$false .= ";".$value['id'];
}
}
echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';
echo "<script type='text/javascript'>";
echo "alert('更改成功".$true.";更改失败".$false."');window.location.href='".I('param.url')."';";
echo "</script>";
exit;
}else{
echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';
echo "<script type='text/javascript'>";
echo "alert('文件读取失败');window.location.href='".I('param.url')."';";
echo "</script>";
exit;
}
}
}
phpexcel导入excel表格的更多相关文章
- Thinkphp 用PHPExcel 导入Excel
搞了个简单的Excel导入, 用的是PHPExcel(百科:用来操作Office Excel文档的一个PHP类库, 基于微软的OpenXML标准和PHP语言) 好, 不说了, 开始吧... 首先得有P ...
- 使用PHPExcel解析Excel表格
安装类库 从GitHub上下载PHPExcel类库 地址:https://github.com/PHPOffice/PHPExcel 解压后将Classes文件夹移动到ThinkPHP的extend目 ...
- 【tp5.1】通过PHPExcel实现导入excel表格
1.上github下载PHPExcel,链接:https://github.com/PHPOffice/PHPExcel 2.下载解压后,将Classes改名为PHPExcel如图 3.将文件夹复制到 ...
- php导入excel表格
我们做网站的时候经常要用到excel导入和导出的功能,我们通常的做法是用phpexcel工具包来完成,具体方法如下: html代码: <form action="{:U('Mall/u ...
- thinkphp整合系列之phpexcel导入excel数据
一:导入phpexcel /ThinkPHP/Library/Vendor/PHPExcel 二:导入excel的函数 /** * 导入excel文件 * @param string $file ex ...
- ThinkPHP 3.2.3 使用 PHPExcel 处理 Excel 表格
下载 PHPExcel(https://github.com/PHPOffice/PHPExcel) 把下载的 zip 包解压至 ./ThinkPHP/Library/Vendor 下 一.导入 Ex ...
- 使用PHPExcel导入Excel到MySql
.连接数据库的connection.php文件 <?php //修改下面代码来联接数据库 // mysql_connect打开一个到 MySQL 服务器的连接,如果成功则返回一个 MySQL 连 ...
- phpexcel导入excel文件报the filename xxx is not recognised as an OLE file错误。
工作中频繁会用phpexcel类导入excel文件的数据到数据库,目前常用的excel文件格式有:xls.csv.xlsx. 刚开始,针对xls文件,使用如下程序,能正常运行: $objReader ...
- YII使用PHPExcel导入Excel文件的方法
1.下载phpexcel,将压缩包中的classes复制到protected/extensions下并修改为PHPExcel. 2.修改YII配置文件config/main.php 'import'= ...
随机推荐
- Linq二 LinqToSql
虽然微软已经停止更新了LinqToSql,但是目前的已完全满足目前的需求. 第一步:添加LinqToSql 第二步:将其关联的Sqlserver数据库 第三步:数据库已变成实体类 第四步:可以对数据库 ...
- [Python模式]策略模式
策略模式 定义了算法族,分别封装起来,让它们之间可以互相替换.此模式让算法的变化独立于使用算法的客户. 作为动态语言,Python实现策略模式非常容易,只要所有算法提供相同的函数即可. import ...
- VMware安装虚拟系统问题
问题1: 我装了vmware 6.5.2,用它来安装深度的 GhostXP 时,在分区之后重启出现Invalid system disk,Replace the disk and then press ...
- NOI Linux JAVA
右键open with another application 里输javaws 按ctrl+shift+del,调出火狐内置的清除最近的历史记录工具(或者按alt键弹出菜单,工具->清空最近历 ...
- Android 中pid与uid的作用与区别
PID:为Process Identifier, PID就是各进程的身份标识. 程序一运行系统就会自动分配给进程一个独一无二的PID.进程中止后PID被系统回收,可能会被继续分配给新运行的程序,但是在 ...
- 给table行换色
<script language="javascript"> //假设Table的ID为angel $("#angel tr").click(fun ...
- open Live Writer配置步骤
一.关于 Open Live Writer 微软推出的一款能够免费使用的博客写作软件,主要为用户提供博客在线撰写和编辑功能,可以离线编辑,联网时同步到各大博客网站上去. 接下来,介绍如何使用这款工具发 ...
- kuangbin_SegTree B (HDU 1754)
跟A题类似 只是把update从增减直接改为赋值 query从求和改为求最大值 其他几乎一样 #include <cstdio> #include <cstring> #inc ...
- Apache服务器配置技巧
1.如何设置请求等待时间 在httpd.conf里面设置: TimeOut n 其中n为整数,单位是秒. 设置这个TimeOut适用于三种情况: 2.如何接收一个get请求的总时间 接收一个post和 ...
- day17算法
http://www.360doc.com/content/14/0804/11/1073512_399302715.shtml