ThinkPHP3.2.3 PHPExcel读取excel插入数据库

版本 ThinkPHP3.2.3

下载PHPExcel

将这两个文件放到并更改名字

excel文件:

数据库表:

CREATE TABLE `sh_name` (
`name` varchar(255) DEFAULT NULL,
`age` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

代码:

代码主要在index方法中,有数据提交则写入数据库,否则展示表单

 1 <?php
 2 namespace Home\Controller;
 3 use Think\Controller;
 4 use Think\Upload;
 5
 6 class IndexController extends Controller {
 7     public function indexAction(){
 8         if(IS_POST){
 9             $file = $_FILES;
10             //上传
11             $path = $this->upload($file);
12             //读取excel
13             $arr = $this->excel($path, 0);
14             //实例化模型
15             $model = D(‘name‘);
16             //添加的数据
17             $data = [];
18             for($i=2; $i<=count($arr); $i++){
19                 $data[] = [‘name‘=>$arr[$i][‘A‘], ‘age‘=>$arr[$i][‘B‘]];
20             }
21             //添加
22             $model->addAll($data);
23         }else{
24             $this->display();
25         }
26
27     }
28     public function testAction(){
29         echo "<h1>hello world</h1>";
30     }
31     //上传
32     public function upload(){
33         $upload = new Upload();
34         $upload->maxSize = 3145728 ;// 设置附件上传大小
35         $upload->exts = array(‘jpg‘, ‘gif‘, ‘png‘, ‘jpeg‘, ‘xls‘);// 设置附件上传类型
36         $upload->rootPath = APP_PATH . ‘Uploads/‘; // 设置附件上传根目录
37         $upload->savePath = ‘xls/‘; // 设置附件上传(子)目录
38         // 上传文件
39         $info = $upload->upload();
40         $info = $info[‘inputfile‘];
41         if(!$info) {// 上传错误提示错误信息
42             $this->error($upload->getError());
43         }
44
45         return APP_PATH . ‘Uploads/‘ . $info[‘savepath‘] . $info[‘savename‘];
46     }
47
48     //excel
49     public function excel($filePath=‘‘, $sheet=0){
50
51         import("Org.Util.PHPExcel");
52         import("Org.Util.PHPExcel.Reader.Excel5");
53         import("Org.Util.PHPExcel.Reader.Excel2007");
54
55         if(empty($filePath) or !file_exists($filePath)){die(‘file not exists‘);}
56         $PHPReader = new \PHPExcel_Reader_Excel2007();        //建立reader对象
57         if(!$PHPReader->canRead($filePath)){
58             $PHPReader = new \PHPExcel_Reader_Excel5();
59             if(!$PHPReader->canRead($filePath)){
60                  echo ‘no Excel‘;
61                 return ;
62             }
63         }
64         $PHPExcel = $PHPReader->load($filePath);        //建立excel对象
65         $currentSheet = $PHPExcel->getSheet($sheet);        //**读取excel文件中的指定工作表*/
66         $allColumn = $currentSheet->getHighestColumn();        //**取得最大的列号*/
67         $allRow = $currentSheet->getHighestRow();        //**取得一共有多少行*/
68         $data = array();
69         for($rowIndex=1;$rowIndex<=$allRow;$rowIndex++){        //循环读取每个单元格的内容。注意行从1开始,列从A开始
70             for($colIndex=‘A‘;$colIndex<=$allColumn;$colIndex++){
71                 $addr = $colIndex.$rowIndex;
72                 $cell = $currentSheet->getCell($addr)->getValue();
73                 if($cell instanceof PHPExcel_RichText){ //富文本转换字符串
74                     $cell = $cell->__toString();
75                 }
76                 $data[$rowIndex][$colIndex] = $cell;
77             }
78         }
79         return $data;
80     }
81 }
时间: 2024-12-21 20:45:10

ThinkPHP3.2.3 PHPExcel读取excel插入数据库的相关文章

PHPExcel——读取excel

在网上找了excel读取的一些资料,个人觉得PHPExcel这还是挺好用的,相对比较全的工具. 主要功能是读取上传的excel文件,插入或更新到数据库. iconv("gbk","utf8",$_FILES["file"]["tmp_name"]),mysql_query("SET NAMES 'utf8'"),编码转换防止中文在数据库中显示乱码: 以下是主要的源代码: 1 header("Con

(实用篇)PHPExcel读取Excel文件的实现代码

用PHPExcel读取Excel 2007 或者Excel2003文件,需要的朋友,可以参考下. 涉及知识点:  php对excel文件进行循环读取 php对字符进行ascii编码转化,将字符转为十进制数 php对excel日期格式读取,并进行显示转化 php对汉字乱码进行编码转化 <?php require_once 'PHPExcel.php'; /**对excel里的日期进行格式转化*/ function GetData($val){ $jd = GregorianToJD(1, 1, 1

读取文本文件插入数据库

做了一个读取加密文件经过解密后插入数据库的功能,如果在数据库中没有该ID号(唯一)的记录则执行插入操作,如果该数据库中存在该ID的记录好么执行更新操作.本次选择文件采用的是 FileUpload控件,但这个控件在浏览器中如果设置不好通过FileUpload1.FileName或FileUpload1.PostedFile.FileName得到的只是文件名而不是全路径,而StreamReader sr = new StreamReader(url, Encoding.GetEncoding("GB

PHPExcel读取excel文件示例

PHPExcel的类库下载地址:  https://github.com/PHPOffice/PHPExcel 转载自: http://www.imhdr.com/1332/comment-page-1/ PHPExcel是一个非常方便生成Excel格式文件的类,官方下载包中带有大量如何生成各种样式excel文件的示例,但没有一个读取Excel文件的完整例子.Xiaoqiang根据网上的资料,整理了一份简单读取Excel文件的例子.传统方法: <?php /** * * @copyright 2

PHPExcel读取Excel文件的实现代码

<?php require_once 'PHPExcel.php'; /**对excel里的日期进行格式转化*/ function GetData($val){ $jd = GregorianToJD(1, 1, 1970); $gregorian = JDToGregorian($jd+intval($val)-25569); return $gregorian;/**显示格式为 “月/日/年” */ } $filePath = 'test.xlsx'; $PHPExcel = new PHP

thinkphp用phpexcel读取excel,并修改列中的值,再导出excel,带往excel里写入图片

<?php class GetpriceAction extends AdministratorAction { // 文件保存路径 protected $savepath; // 允许上传的文件类型 protected $allowFileType; public function _initialize(){ parent::_initialize(); $this->savepath = './xxx/'.date('Ymd').'/'; $this->allowFileType

C/s从文件(TXT)中读取数据插入数据库

流程: 1.当按钮单击时,弹出OpenFileDialog 2.判断后缀名是否合法 3.导入数据库 按钮事件中的代码: 1.判断用户是否选中文件. 2.判断用户选择的文件是否为txt //第一步,当按钮被点击时,弹出选择文件框,OpenFileDialog OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "文件文件|*.txt"; if (ofd.ShowDialog() == DialogResult.OK) { if

PHPExcel读取excel文件

<?php set_time_limit(0); $dir = dirname(__FILE__);//当前脚本所在路径 require $dir."/PHPExcel_1.8.0/Classes/PHPExcel.php"; //$objPHPExcel = new PHPExcel();//实例化PHPExcel类 $filename = $dir."/20151016091328_95039.xls"; $objPHPExcel=PHPExcel_IOF

Yii 集成 PHPExcel读取Excel文件

PHPexcel官方下载以后,放入Yii的protected\extensions\phpexcel下面 try { spl_autoload_unregister(array('YiiBase', 'autoload')); $phpExcelPath = Yii::getPathOfAlias('application.extensions.phpexcel.PHPExcel'); include($phpExcelPath . DIRECTORY_SEPARATOR . 'IOFactor