PHPExcel类是php一个excel表格处理插件了,下面我来给大家介绍利用PHPExcel类来导入与导出excel表格的应用方法,有需要了解的朋友不防参考参考(PHPExcel自己百度下载这里不介绍了)。

导出Excel用法

//设置环境变量(新增PHPExcel)

set_include_path('.'. PATH_SEPARATOR . Yii::app()->basePath.'/lib/PHPExcel' . PATH_SEPARATOR .
get_include_path());
//注:在yii中,也可以直接Yii::import(“application.lib.PHPExcel.*”); //引入PHPExcel相关文件
require_once "PHPExcel.php";
require_once 'PHPExcel/IOFactory.php';
require_once 'PHPExcel/Writer/Excel5.php';

//把要导出的内容放到表格

//新建
$resultPHPExcel = new PHPExcel();
//设置参数
//设值
$resultPHPExcel->getActiveSheet()->setCellValue('A1', '季度');
$resultPHPExcel->getActiveSheet()->setCellValue('B1', '名称');
$resultPHPExcel->getActiveSheet()->setCellValue('C1', '数量');
$i = 2;
foreach($data as $item){
$resultPHPExcel->getActiveSheet()->setCellValue('A' . $i, $item['quarter']);
$resultPHPExcel->getActiveSheet()->setCellValue('B' . $i, $item['name']);
$resultPHPExcel->getActiveSheet()->setCellValue('C' . $i, $item['number']);
$i ++;
}

设置导出参数

//设置导出文件名
$outputFileName = 'total.xls';
$xlsWriter = new PHPExcel_Writer_Excel5($resultPHPExcel);
//ob_start(); ob_flush();
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header('Content-Disposition:inline;filename="'.$outputFileName.'"');
header("Content-Transfer-Encoding: binary");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Pragma: no-cache");
$xlsWriter->save( "php://output" );

输出有错。

默认$xlsWriter->save( "php://output" );可能因为缓存不够大,而显示不完整,所以做个中转,方式如下:

$finalFileName = (Yii::app()->basePath.'/runtime/'.time().'.xls';
$xlsWriter->save($finalFileName);
echo file_get_contents($finalFileName);

//file_get_contents() 函数把整个文件读入一个字符串中。和 file() 一样,不同的是 file_get_contents() 把文

件读入一个字符串。

导入Excel用法

<?
if($_POST['leadExcel'] == "true")
{
$filename = $_FILES['inputExcel']['name'];
$tmp_name = $_FILES['inputExcel']['tmp_name'];
$msg = uploadFile($filename,$tmp_name);
echo $msg;
}
//导入Excel文件
function uploadFile($file,$filetempname)
{
//自己设置的上传文件存放路径
$filePath = 'upFile/';
$str = "";
//下面的路径按照你PHPExcel的路径来修改
require_once '../PHPExcel/PHPExcel.php';
require_once '../PHPExcel/PHPExcel/IOFactory.php';
require_once '../PHPExcel/PHPExcel/Reader/Excel5.php';
//注意设置时区
$time=date("y-m-d-H-i-s");//去当前上传的时间
//获取上传文件的扩展名
$extend=strrchr ($file,'.');
//上传后的文件名
$name=$time.$extend;
$uploadfile=$filePath.$name;//上传后的文件名地址
//move_uploaded_file() 函数将上传的文件移动到新位置。若成功,则返回 true,否则返回 false。
$result=move_uploaded_file($filetempname,$uploadfile);//假如上传到当前目录下
//echo $result;
if($result) //如果上传文件成功,就执行导入excel操作
{
include "conn.php";
$objReader = PHPExcel_IOFactory::createReader('Excel5');//use excel2007 for 2007 format
$objPHPExcel = $objReader->load($uploadfile);
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow(); //取得总行数
$highestColumn = $sheet->getHighestColumn(); //取得总列数 /* 第一种方法
//循环读取excel文件,读取一条,插入一条
for($j=1;$j<=$highestRow;$j++) //从第一行开始读取数据
{
for($k='A';$k<=$highestColumn;$k++) //从A列读取数据
{
//
这种方法简单,但有不妥,以''合并为数组,再分割为字段值插入到数据库
实测在excel中,如果某单元格的值包含了导入的数据会为空
//
$str .=$objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue().'';//读取单元格
}
//echo $str; die();
//explode:函数把字符串分割为数组。
$strs = explode("",$str);
$sql = "INSERT INTO te(`1`, `2`, `3`, `4`, `5`) VALUES (
'{$strs[0]}',
'{$strs[1]}',
'{$strs[2]}',
'{$strs[3]}',
'{$strs[4]}')";
//die($sql);
if(!mysql_query($sql))
{
return false;
echo 'sql语句有误';
}
$str = "";
}
unlink($uploadfile); //删除上传的excel文件
$msg = "导入成功!";
*/
/* 第二种方法*/
$objWorksheet = $objPHPExcel->getActiveSheet();
$highestRow = $objWorksheet->getHighestRow();
echo 'highestRow='.$highestRow;
echo "<br>";
$highestColumn = $objWorksheet->getHighestColumn();
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);//总列数
echo 'highestColumnIndex='.$highestColumnIndex;
echo "<br>";
$headtitle=array();
for ($row = 1;$row <= $highestRow;$row++)
{
$strs=array();
//注意highestColumnIndex的列数索引从0开始
for ($col = 0;$col < $highestColumnIndex;$col++)
{
$strs[$col] =$objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
}
$sql = "INSERT INTO te(`1`, `2`, `3`, `4`, `5`) VALUES (
'{$strs[0]}',
'{$strs[1]}',
'{$strs[2]}',
'{$strs[3]}',
'{$strs[4]}')";
//die($sql);
if(!mysql_query($sql))
{
return false;
echo 'sql语句有误';
}
}
}
else
{
$msg = "导入失败!";
}
return $msg;
}
?>

HTML网页代码

<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="leadExcel" value="true">
<table align="center" width="90%" border="0">
<tr>
<td>
<input type="file" name="inputExcel"><input type="submit" value="导入数据">
</td>
</tr>
</table>
</form>

PHPExcel 导出表格 不知道好不好用的更多相关文章

  1. CefSharp 集成谷歌浏览器详解---(一)环境搭建(没测试过,不知道好不好用)

    https://blog.csdn.net/zpyxman/article/details/78538808

  2. 关于PHPExcel 导出下载表格,调试器响应乱码

    PHPExcel导出表格是日常程序开发很常见的一功能,有些小伙伴千辛万苦把代码写好之后,运行一下结果发现浏览器没反应,表格下载不了或者表格乱码!!!像这种情况有三种解决方法: 1.在header 之前 ...

  3. TP5.0 PHPExcel 数据表格导出导入(引)

    TP5.0 PHPExcel 数据表格导出导入(引) 今天看的是PHPExcel这个扩展库,Comporse 下载不下来,最后只能自己去github里面手动下载,但有一个问题就是下载下来的PHPExc ...

  4. php导出表格两种方法 ——PhpExcel的列子

    php常用的导出表格有两种方法,第一种是输出表格,这种方法打开的时候有警告提示,一般导出表格会用phpexcel,这个导出比较灵活,而且还可以设置表格的样式. 第一种导出例子 /** * 执行导出 * ...

  5. PHP读取excel表格,和导出表格

    读取表格 public function excel(){ import("Common.Vendor.Excel.PHPExcel"); $filename="./fi ...

  6. PHPExcel导出工作蒲(多表合并)教程+详细代码解读

    最近做了一个需求,导出统计数据,因为需要同时导出多个不同的统计数据,所以不能像以往导出数据列表一样去实现这个需求,刚好空下来就记录一下(PHPExcel导出Excel多sheet合并) 一.主要使用的 ...

  7. 百度地图里面搜索到的公司商家电话导出表格?怎样将把百度地图里面搜索到的公司 电话 地址 等数据导出excel里?

    好多人在问:如何将百度地图里面搜索到的公司商家电话导出表格?怎样将把百度地图里面搜索到的公司 电话 地址 等数据导出excel里? 现在,很多人都在网络上找商家,联系业务. 百度地图里有很多的商家联系 ...

  8. PHPExcel导出excel文件

    今天园子刚开,先来个货顶下,后续园丁qing我会再慢慢种园子的,希望大家多来园子逛逛. PHPExcel导出excel文件,先说下重要的参数要记住的东西 impUser() 导入方法 exportEx ...

  9. phpExcel导出excel加超级链接的实例代码[转]

    phpexcel实现的导出excel文件的代码,且可以在excel文件中加入超级链接. 说明:PHPExcel的开发包Tests目录有详细使用实例.以下代码支持中文,注意文件编码,文件保存为utf-8 ...

随机推荐

  1. transient关键字

    transient关键字的英文意思是:瞬态,由此可见是瞬间的,不可固定的. 会不会与对象的状态等等有关系呢? 网上找了一下资料是跟对象的序列化有关. transient的作用 一个对象只要实现了Ser ...

  2. myisam压缩(前缀压缩)索引

    myisam使用前缀压缩来减少索引的大小,从而让更多的索引可以放入内存中,默认只压缩字符串,但通过参数配置也可以对整数做压缩,myisam压缩每个索引块的方法是,先完全保存索引块中的第一个值,然后将其 ...

  3. Centos6版本升级

    1.查看当前版本 [root@IDC-D-1699 docker]# cat /etc/issue CentOS release 6.8 (Final) Kernel \r on an \m 2.升级 ...

  4. [转]为何需要调用“super viewDidLoad

    转载地址:http://liwpk.blog.163.com/blog/static/36326170201165104413314/   - (void)didReceiveMemoryWarnin ...

  5. LeetCode算法题解

    1.给定两个正整数(二进制形式表示)A和B,问把A变为B需要改变多少位(bit)?也就是说,整数A和B的二进制表示中有多少位是不同的?(181) 解法一:举例说明,为了减少复杂度,就使用八位二进制吧. ...

  6. laravel框架总结(五) -- 服务提供者(提及契约Contracts)

    首先理解两个概念 1.契约:一组定义了框架核心服务的接口 2.服务提供者:所有 Laravel 应用程序启动的中心所在. 包括你自己的应用程序,以及所有的 Laravel 核心服务,都是通过服务提供者 ...

  7. R----stringr包介绍学习

    1. stringr介绍 stringr包被定义为一致的.简单易用的字符串工具集.所有的函数和参数定义都具有一致性,比如,用相同的方法进行NA处理和0长度的向量处理. 字符串处理虽然不是R语言中最主要 ...

  8. 自定义Dialog

    功能:从底部弹出的对话框,加入动画 步骤:1 定义dialog布局文件 2 设置标题,透明度style.xml,选择器selector.xml ,圆角shape.xml 等样式文件 3 设置显示位置, ...

  9. python day1 常用模块

    键盘输入: python2.7 raw_input() python3 input() 键盘输入默认为字符串,可通过例如 int(input())方式,实现类型转换. ‘密文’输入: 仅python的 ...

  10. Zero Copy

    原文出处: http://www.ibm.com/developerworks/library/j-zerocopy/ 传统的I/O 使用传统的I/O程序读取文件内容, 并写入到另一个文件(或Sock ...