引第三方的phpexcel类库放到 ThinkPHP\Library\Vendor\demo下,自己建的文件夹demo

再将Excel.class放到ThinkPHP\Library\Org\class下,自己建的文件夹class

控制器:

<?php
namespace Admin\Controller;
use Think\Controller;
class ExcelController extends Controller {
public function excelList(){
$this->display();
}
// 导入
public function import(){
if(!empty($_FILES['file_stu']['name'])){
$tmp_file = $_FILES['file_stu']['tmp_name']; //临时文件名
$file_types = explode('.',$_FILES['file_stu']['name']); // 拆分文件名
$file_type = $file_types [count ( $file_types ) - 1]; // 文件类型
/*判断是否为excel文件*/
if($file_type == 'xls' || $file_type == 'xlsx'|| $file_type == 'csv'){ // 符合类型
/*上传业务*/
$upload = new \Think\Upload();
$upload->maxSize = 3145728 ;
$upload->exts = array('xls', 'csv', 'xlsx');
$upload->rootPath = './Public';
$upload->savePath = '/Excel/';
$upload->saveName = date('YmdHis');
$info = $upload->upload();
if(!$info) { // 上传错误提示错误信息
$this->error($upload->getError());
}else{ // 上传成功 // 读取文件
$filename='./Public'.$info['file_stu']['savepath'].$info['file_stu']['savename'];
import("Org.Yufan.ExcelReader");
vendor('PHPExcel.PHPExcel');
$reader = \PHPExcel_IOFactory::createReader('Excel2007'); //设置以Excel5格式(Excel97-2003工作簿)
$PHPExcel = $reader->load($filename); // 载入excel文件
$sheet = $PHPExcel->getSheet(0); // 读取第一個工作表
$highestRow = $sheet->getHighestRow(); // 取得总行数
var_dump($highestRow);
$highestColumm = $sheet->getHighestColumn(); // 取得总列数 /** 循环读取每个单元格的数据 */
$data = array();
for ($row = 2; $row <= $highestRow; $row++){//行数是以第1行开始 if($column = 'A'){
$data['name'] = $sheet->getCell($column.$row)->getValue();
}
if($column = 'B'){
$data['account'] = $sheet->getCell($column.$row)->getValue();
}
if($column = 'C'){
$data['password'] = $sheet->getCell($column.$row)->getValue();
}
M('data')->add($data);
}
$this->success('导入数据库成功',U('Excel/show'));
}
} else{ // 不符合类型业务
$this->error('不是excel文件,请重新上传...');
}
}else{
$this->error('(⊙o⊙)~没传数据就导入');
}
}
//导出
public function export(){
import("ORG.Yufan.Excel");
$list = M('data')->select();
if($list == null){
$this->error('数据库信息为空...',__APP__.'/Admin/Excel/show');
}else{
$row=array();
$row[0]=array('平台名称','帐号','密码');
$i=1;
foreach($list as $v){
$row[$i]['name'] = $v['name'];
$row[$i]['account'] = $v['account'];
$row[$i]['password'] = $v['password'];
$i++;
}
$xls = new \Excel_XML('UTF-8', false, 'datalist');
$xls->addArray($row);
$xls->generateXML(date('YmdHis'));
}
}
public function show(){
$m = M('data');
$data = $m->select();
$this->assign('data',$data);
$this->display();
}
}

视图

excelList.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Excel导入导出</title>
</head>
<body> <div class="page-header">
<h1>TP DEMO
<small>Excel导入导出练习</small>
</h1>
</div> <form method="post" action="{:U('Excel/import')}" class="form-signin" enctype="multipart/form-data" >
<input name="file_stu" type="file" class="form-control">
<button class="btn btn-lg btn-primary btn-block">导入</button>
</form>
</body>
</html>

视图

show.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>表格展示</title>
</head>
<body>
<div class="page-header">
<h1>TP DEMO
<small>Excel导入导出练习</small>
</h1>
</div> <table class="table">
<tr>
<td><h4><b>平台名称</b></h4></td>
<td><h4><b>帐号</b></h4></td>
<td><h4><b>密码</b></h4></td>
</tr>
<foreach name="data" item="vo">
<tr>
<td>{$vo.name}</td>
<td>{$vo.account}</td>
<td>{$vo.password}</td>
</tr>
</foreach>
</table> <form action="{:U('Excel/export')}" class="form-signin">
<button class="btn btn-lg btn-primary btn-block">导出数据库数据</button>
</form> </body>
</html>

TP5.0 excel 导入导出的更多相关文章

  1. 利用反射实现通用的excel导入导出

    如果一个项目中存在多种信息的导入导出,为了简化代码,就需要用反射实现通用的excel导入导出 实例代码如下: 1.创建一个 Book类,并编写set和get方法 package com.bean; p ...

  2. ASP.NET 之 常用类、方法的超级总结,并包含动态的EXCEL导入导出功能,奉上类库源码

    实用类:UtilityClass 包含如下方法 判断对象是否为空或NULL,如果是空或NULL返回true,否则返回false 验证手机号是否正确 13,15,18 验证邮箱 验证网址 MD5加密,返 ...

  3. Excel导入导出帮助类

    /// <summary>    /// Excel导入导出帮助类    /// 记得引入 NPOI    /// 下载地址   http://npoi.codeplex.com/rele ...

  4. 一个基于POI的通用excel导入导出工具类的简单实现及使用方法

    前言: 最近PM来了一个需求,简单来说就是在录入数据时一条一条插入到系统显得非常麻烦,让我实现一个直接通过excel导入的方法一次性录入所有数据.网上关于excel导入导出的例子很多,但大多相互借鉴. ...

  5. Octopus——excel导入导出工具

    Octopus Octopus是一个简易的Excel导入导出工具.目前主要就两个功能: 导入:将excel中一行数据转换为指定的java对象,并通过指定的正则表达式检查合法性. 导出:按照给定的xml ...

  6. Mego(04) - NET简单实现EXCEL导入导出

    前言 相信做过信息系统的朋友都会遇到EXCEL导入导出的相关开发,做过不少EXCEL导入导出后总结起来大致有如下几种方式实现: ADO.NET的OldDb或ODBC连接EXCEL使用DataTable ...

  7. JeeSite中Excel导入导出

    在各种管理系统中,数据的导入导出是经常用到的功能,通常导入导出以Excel.CSV格式居多.如果是学习的过程中,最好是自己实现数据导入与导出的功能,然而在项目中,还是调用现成的功能比较好.近期一直使用 ...

  8. 土制Excel导入导出及相关问题探讨

    转载请注明出处https://www.cnblogs.com/funnyzpc/p/10392085.html 新的一年,又一个开始,不见收获,却见年龄,好一个猪年,待我先来一首里尔克的诗: < ...

  9. Java 使用 Jxl 实现 Excel 导入导出

    开发过程中经常需要用到数据的导入导出功能,之前用的是POI,这次使用JXL,JXL相对于POI来说要轻量简洁许多,在数据量不大的情况下还是非常实用的.这里做一下使用JXL的学习记录.首先需要导入相应的 ...

随机推荐

  1. Python核心编程--浅拷贝与深拷贝

    一.问题引出浅拷贝 首先看下面代码的执行情况: a = [1, 2, 3] print('a = %s' % a) # a = [1, 2, 3] b = a print('b = %s' % b) ...

  2. 神经网络 误差逆传播算法推导 BP算法

      误差逆传播算法是迄今最成功的神经网络学习算法,现实任务中使用神经网络时,大多使用BP算法进行训练.   给定训练集\(D={(x_1,y_1),(x_2,y_2),......(x_m,y_m)} ...

  3. JS 对象API之修改、删除对象的属性

    无论是修改还是删除对象的属性,我们首先要清楚:自有属性.共有属性的处理方法肯定是不同的: 先创建一个对象实例 var obj = { name: '小马扎', age: }; Object.proto ...

  4. python爬虫知识点三--解析豆瓣top250数据

    一.利用cookie访问import requests headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKi ...

  5. css布局--垂直居中

    1. 使用table-cell和vertical-align实现垂直居中 html <div class="parent">使用table-cell和vertical- ...

  6. git使用过程中遇到的问题及处理方法

    1. Your local changes to the following files would be overwritten by checkout:......Please commit yo ...

  7. 【知了堂学习心得】浅谈c3p0连接池和dbutils工具类的使用

    1. C3P0概述 C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展.目前使用它的开源项目有Hibernate,Spring等. 2. C3P ...

  8. oracle如何导出和导入数据库表

    oracle如何导出和导入数据库表 oracle如何将项目中的表导出后在导入自己的数据库中,这是一个完整的操作,对于数据库备份或在本地查看数据验证数据进场用到,一般情况下我都用dos黑窗口进行操作,简 ...

  9. ECharts模拟迁徙案例

    ECharts模拟迁徙案例 独立页面:http://211.140.7.173:8081/t/wuhairui/ditu/a.html

  10. Python3 决策树

    # -*- coding: utf-8 -*-"""Created on Fri Dec 29 10:18:04 2017 @author: markli"&q ...