版本 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. }

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

  1. SQLBulkCopy使用实例--读取Excel写入数据库/将 Excel 文件转成 DataTable

    MS SQL Server 提供一个称为 bcp 的流行的命令提示符实用工具,用于将数据从一个表移动到另一个表(表可以在不同服务器上). SqlBulkCopy 类允许编写提供类似功能的托管代码解决方 ...

  2. PHPExcel读取excel文件示例

    PHPExcel读取excel文件示例PHPExcel最新版官方下载网址:http://phpexcel.codeplex.com/PHPExcel是一个非常方便生成Excel格式文件的类,官方下载包 ...

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

    用PHPExcel读取Excel 2007 或者Excel2003文件,需要的朋友,可以参考下. 涉及知识点:  php对excel文件进行循环读取 php对字符进行ascii编码转化,将字符转为十进 ...

  4. 利用PHPExcel读取Excel的数据和导出数据到Excel

    PHPExcel是一个PHP类库,用来帮助我们简单.高效实现从Excel读取Excel的数据和导出数据到Excel.也是我们日常开发中,经常会遇到的使用场景.比如有个客户信息表,要批量导出发给同事,我 ...

  5. PHPExcel读取excel的多个sheet存入数据库

    //批量导入文章 excel读取 public function importdata ( $filename, $tmp_name ) { //设置超时时间 set_time_limit(0); $ ...

  6. PHPExcel读取Excel文件的实现代码

    <?php require_once 'PHPExcel.php'; /**对excel里的日期进行格式转化*/ function GetData($val){ $jd = GregorianT ...

  7. 读取excel到数据库里面

    //读取excel数据到dataTable里面 public DataTable ReadExcelDataToDataTable(string path) { DataTable dt = new ...

  8. PHP使用phpexcel读取excel文件

    PHP读取excel文件 require("Classes/PHPExcel.php"); require("Classes/PHPExcel/IOFactory.php ...

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

    <?php class GetpriceAction extends AdministratorAction { // 文件保存路径 protected $savepath; // 允许上传的文 ...

随机推荐

  1. php基础知识(语法与原理)

    一.php简介 PHP超文本预处理器.是嵌入HTML文件中的服务器脚本程序. PHP代码标记:<?php …. ?> PHP文件的扩展名:.php PHP文件的执行:必须从域名开始访问 P ...

  2. JAVA Thread Dumps 三部曲

    一.windows环境下方法 1:cmd下找到运行服务器容器的PID jps -v 例: C:\Users\Administrator>jps -v4856 Bootstrap -Djdk.tl ...

  3. Python学习笔记(三十二)常用内建模块(1)— datetime

    >>> from datetime import datetime >>> now = datetime.now() # 获取当前datetime >> ...

  4. iOS 监听UILabel点击

    label.userInteractionEnabled = YES; // 一定要设置 [label addGestureRecognizer:[[UITapGestureRecognizer al ...

  5. amcharts的一些用法

    function chartdiv2() { var chart; var chartData = [ { "month" : "2015-08", " ...

  6. flex布局语法(阮一峰)

    Flex 布局教程:语法篇   作者: 阮一峰 日期: 2015年7月10日 网页布局(layout)是CSS的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display属性 + posi ...

  7. Knockout双向绑定

    knockout双工绑定基于 observe 模式,性能高.核心就是observable对象的定义.这个函数最后返回了一个也叫做 observable 的函数,也就是用户定义值的读写器(accesso ...

  8. Go语言 5 函数

    文章由作者马志国在博客园的原创,若转载请于明显处标记出处:http://www.cnblogs.com/mazg/ 今天,我们来学习Go语言编程的第五章,函数.首先简单说一下函数的概念和作用.函数是一 ...

  9. C++ 模板特化以及Typelist的相关理解

    近日,在学习的过程中第一次接触到了Typelist的相关内容,比如Loki库有一本Modern C++ design的一本书,大概JD搜了一波没有译本,英文版600多R,瞬间从价值上看到了这本书的价值 ...

  10. virsh 命令最新整理。 每个“;”之后是正解

    1,migrate --domain --destURL --dname  --live(热迁移) migrate lf 192.168.16.3 dname 2,managedsave domain ...