使用PHPEXCEL导入数据到数据库
导出功能参考:http://www.cnblogs.com/zhouqi666/p/5978017.html
比较严重的问题:当遇到excel数据量比较大的时候,会发生内存溢出的情况,目前无法解决
excel的数据格式为
A B
前面对应数据库type,后面对应电话号码
数据库
使用的是THINKPHP3.2.3其实就是连接数据库插入的时候用到和引用加载文件的时候用到TP只是了
代码如下
//引入PHPExcel 如果不是TP用require_once
vendor("PHPExcel.PHPExcel");
vendor("PHPExcel.IOFactory");
$cacheMethod = \PHPExcel_CachedObjectStorageFactory:: cache_to_phpTemp;
$cacheSettings = array( 'memoryCacheSize ' => '8MB');
\PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);
// 实例化exel对象
//文件路径
$file_path = './Public/excel/test1.xlsx';
if (!file_exists($file_path)){
die('file not exists');
}
//文件的扩展名
$ext = strtolower(pathinfo($file_path,PATHINFO_EXTENSION));
if ($ext == 'xlsx'){
$objReader = \PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel = $objReader->load($file_path);
}elseif($ext == 'xls'){
$objReader = \PHPExcel_IOFactory::createReader('Excel5');
$objPHPExcel = $objReader->load($file_path);
}
$objReader->setReadDataOnly(true);
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow();//获取总行数
$highestColumn = $sheet->getHighestColumn();//获取总列数
//10 B
for ($i = 1;$i<=$highestRow;$i++){
$record = array();//申明每条记录数组
for ($j = 'A';$j<=$highestColumn;$j++){
$record[] = $objPHPExcel->getActiveSheet()->getCell("$j$i")->getValue();//读取单元格
}
$record['type'] = $record[0];
$record['phone'] = $record[1];
$res = D('Test')->add($record);
header("Content-type:text/html;charset=utf-8");
if($res == false){
echo '插入数据出错!数据格式为:';
dump($record);
die;
}
}
使用PHPEXCEL导入数据到数据库的更多相关文章
- ThinkPHP第二十三天(Category表结构、PHPExcel导入数据函数)
1.category分类表表结构id,name,pid,sort,结合category.class.php类使用. 2.PHPExcel导入数据函数示例 function excel_to_mysql ...
- PHP Excel文件导入数据到数据库
1.php部分(本例thinkphp5.1): 下载PHPExcel了扩展http://phpexcel.codeplex.com/ <?phpnamespace app\admin\contr ...
- phpexcel导入数据提示失败
phpexcel导入excel时明明只有几行数据,却提示506行失败,原来是excel中有506行"无效数据"(看起来是空的,但是和没有数据不一样).
- thinkphp中使用PHPEXCEL导入数据
导入方法比较简单 但必须考虑到Excel本身单元格格式问题 例如以0开头的字符串读出来被去掉了前导0 成为float型而丢失一位 必须进行处理 <?php /** * Author lizhao ...
- ThinkPhp3.2.3 使用phpExcel导入数据
public function uploadExcel(){ if (!empty($_FILES)){ $upload = new \Think\Upload(); // 实例化上传类 $uploa ...
- asp.net 从Excel表导入数据到数据库中
http://www.cnblogs.com/hfzsjz/archive/2010/12/31/1922901.html http://hi.baidu.com/ctguyg/item/ebc857 ...
- phpexcel导入数据出现PHPExcel_RichText Object解决办法
在导入excel的时候会出现异常情况,有的问题出现PHPExcel_RichText object,错误代码如下 PHPExcel_RichText Object ( [_richTextElemen ...
- phpexcel导入数据部分数据有误
数据在excel中是这样的: 插入数据库后是这样的: 很难发现,出错的那几条数据中的单元格中都有英文','符号,而phpexcel又是以','来拼接读取到的数据的. 解决办法:修改代码中的','为不常 ...
- 从Excel表格导入数据到数据库
数据库:SQL 1.小数据直接粘贴 2.用导入向导 3.用SSIS包 4.用SQL语句 现在详细说一下第4种方法,以.xlsx文件为例 .xlsx文件需要用provider“Microsoft.ACE ...
随机推荐
- 【转】在Unity中读写文件数据:LitJSON快速教程
作者:王选易,出处:http://www.cnblogs.com/neverdie/ 欢迎转载,也请保留这段声明.如果你喜欢这篇文章,请点[推荐].谢谢! 介绍 JSON是一个简单的,但功能强大的序列 ...
- 【Luogu】P2498拯救小云公主(spfa)
题目链接 我水爆了- - 容易发现可以把两个圆之间连边,左上为起点右下为终点,最小生成树直到起点跟终点连起来,输出边权/2就行. 然后80. 并不理解为什么这可以转化成spfa求最短路,邻接矩阵暴力跑 ...
- zoj 1508 Intervals (差分约束)
Intervals Time Limit: 10 Seconds Memory Limit: 32768 KB You are given n closed, integer interva ...
- Codeforces Round #364 (Div. 1) 700B(树)
题目大意 在n颗结点的树上有2k个需要配对的点,把他们两两配对,使得路程和最大并输出 选取一个点v lv表示v与父亲的边 那么考虑lv被经过的次数,对于一个最大的情况,lv应该为min(sv, 2*k ...
- 一步步制作RPM包
一步步制作RPM包 来源 http://blog.51cto.com/laoguang/1103628 一.RPM制作步骤 我们在企业中有的软件基本都是编译的,我们每次安装都得编译,那怎么办呢?那就根 ...
- JAVA项目-嗖嗖移动
/** * 移动卡类 */ public class MobileCard { private String cardNumber; //卡号 private String userName; //用 ...
- Tomcat给我的java.lang.OutOfMemoryError: PermGen
今天,Tomcat给了我这么一个异常:java.lang.OutOfMemoryError: PermGen space.自己是第一次遇到,抱着好奇的心情google了一下,居然是个很常见的异常!故记 ...
- div盒子模型(一图胜千言)
offsetLeft 获取的是相对于父对象的左边距 left 获取或设置相对于 具有定位属性(position定义为relative)的父对象 的左边距 如果父div的position定义为relat ...
- C语言浮点数存储方式
对于浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储,float数据占用 32bit,double数据占用 64bit.其实不论是float类型还是double类型,在计算 ...
- ASIHttprequest-创建同步请求
ASIHttprequest-创建同步请求 当你发送一个同步请求后,该请求会在当前的应用主线程中运行并获取程序的控制权限,也就说你的程序处于锁定的状态,在这个期间,你进行不了任何的操作,直到该请求返回 ...