利用PHPexcel将excel表导入mysql数据库
来源:互联网 发布:ppt圆环图编辑数据 编辑:程序博客网 时间:2024/05/17 02:16
将PHPexcel放入thinkphp框架下Extend/Vendor/PHPExcel文件夹中
<?php
class ExcelAction extends Action{public function index()
{
$this->display('Excel/index');
}
public function add()
{
if (! empty ( $_FILES ['Myfile'] ['name'] )) {
$tmp_file = $_FILES ['Myfile'] ['tmp_name'];
$file_types = explode ( ".", $_FILES ['Myfile'] ['name'] );
$file_type = $file_types [count ( $file_types ) - 1];
/*判别是不是.xls文件,判别是不是excel文件*/
if (strtolower ( $file_type ) != "xls")
{
$this->error ( '不是Excel文件,重新上传' );
}
/*设置上传路径*/
$savePath = './Public/Excel/';
/*以时间来命名上传的文件*/
$str = date ( 'Ymdhis' );
$file_name = $str . "." . $file_type;
/*是否上传成功*/
if (! copy ( $tmp_file, ($savePath . $file_name) ))
{
echo $tmp_file, ($savePath .$file_name);
$this->error ( '上传失败' );
}
/*
*对上传的Excel数据进行处理生成编程数据,这个函数会在下面第三步的ExcelToArray类中
注意:这里调用执行了第三步类里面的read函数,把Excel转化为数组并返回给$res,再进行数据库写入
*/
import('@.lib.ExcelToArray');//导入excelToArray类 //在Lib下面新建一个文件夹lib,将excelToArray类放在里面
$ExcelToArray=new ExcelToArray();//实例化
$res=$ExcelToArray->read($savePath . $file_name,"UTF-8",$file_type);//传参,判断office2007还是office2003
// $res=$ExcelToArray->read(C('UPLOAD_DIR'). $file_name,"UTF-8",$file_type);
/*
重要代码 解决Thinkphp M、D方法不能调用的问题
如果在thinkphp中遇到M 、D方法失效时就加入下面一句代码
*/
//spl_autoload_register ( array ('Think', 'autoload' ) );
/*对生成的数组进行数据库的写入*/
foreach ( $res as $k => $v )
{
$k=$k-1;//addAll方法要求数组必须有0索引
$data[$k]['id'] = $v [0];
$data[$k]['year'] = $v [1];/
$data[$k]['studentid'] = $v [3];
$data[$k]['name'] = $v [4];
$data[$k]['province'] = $v [6];
$data[$k]['major'] = $v [7];
$data[$k]['area'] = $v [8];
$data[$k]['class'] = $v [14];
$data[$k]['idcard'] = $v [15];
}
// var_dump($data);
// $artwebstudent=M('artwebstudent');//M方法
$result=M('artwebstudent')->addAll($data,array(),true); //查找Thinkphp源码翻到Library/Think/Model.class.php找到了addAll方法:public
if (! $result) //function addAll($dataList,$options=array(),$replace=false)于是秒懂了,replace
{
$this->error ( '导入数据库失败' ); //肯定是问你是否覆盖已经存在的数据,于是修改我的addAll方法为:
exit(); // $user- >addAll($data,array(),true):再次测试问题解决。
}else {
$this->success( '导入数据库成功' );
}
}
}
}
在实现导入功能的时候我遇到了很多问题,首先PHPexcel和excelToArray类的放置位置及引用路径一定要正确。然后导入excel的格式要是excel2003或excel2007的,可以用另存为转换格式,还存在一些问题是不能导入大量的数据,还需要慢慢琢磨,就这个东西就弄了这么久,写点东西来纪念一下。
0 0
- 利用PHPexcel将excel表导入mysql数据库
- 利用PHPExcel将数据库数据导入excel表格的方法
- tp3.2.3运用phpexcel将excel文件导入mysql数据库
- thinkphp3.2 运用phpexcel将excel文件导入mysql数据库
- PHPExcel从excel表导入到mysql数据库
- thinkphp将数据库表导出excel phpexcel
- php通过PHPExcel导入Excel表格到MySQL数据库
- phpExcel 实现excel表格和mysql数据库的导入导出
- 利用POI将数据库数据导入Excel
- thinkphp利用phpexcel实现导出导入excel
- MySql将Excel表中的数据导入到数据库表
- 将excel表导入到MySQL数据库表中
- 将excel表的内容导入mysql数据库的方法
- php 将excel导入到mysql数据库
- 【Python】将excel文件导入mysql数据库
- 将Excel表导入MySQL
- PHPExcel导入EXCEL文件到数据库
- PHPExcel导入excel数据到数据库中
- IOS 中方法延时执行的几种方法
- c/c++里的 堆区 栈区 静态区 文字常量区 程序代码区
- java实现Linux的文件上传/java实现邮件发送/smproxy短信发送
- 拖拽原理-问题-解决办法
- JAVA 学习第五天(3) 访问权限
- 利用PHPexcel将excel表导入mysql数据库
- hdu 1014
- nginx.conf文件参数分析
- 欧拉工程第29题:Distinct powers
- POJ1579
- LeetCode 3 Longest Substring Without Repeating Characters
- iOS URL schemes
- 模板函数多个类型参数时候怎么调用
- heroku部署java web项目