PHP实现excel
导入
- public function excel_put(){
- //先做一个文件上传,保存文件
- $path=$_FILES['file'];
- $filePath = "uploads/".$path["name"];
- move_uploaded_file($path["tmp_name"],$filePath);
- //默认用excel2007读取excel,若格式不对,则用之前的版本进行读取
- //表格字段名字
- $data=array('B'=>'name','C'=>'pwd','D'=>'money1','E'=>'salt');
- $tablename='user1';//表名字
- $this->excel_fileput($filePath,$data,$tablename);
- }
- private function excel_fileput($filePath,$data,$tablename){
- $this->load->library("phpexcel");//ci框架中引入excel类
- $PHPExcel = new PHPExcel();
- $PHPReader = new PHPExcel_Reader_Excel2007();
- if(!$PHPReader->canRead($filePath)){
- $PHPReader = new PHPExcel_Reader_Excel5();
- if(!$PHPReader->canRead($filePath)){
- echo 'no Excel';
- return ;
- }
- }
- // 加载excel文件
- $PHPExcel = $PHPReader->load($filePath);
- // 读取excel文件中的第一个工作表
- $currentSheet = $PHPExcel->getSheet(0);
- // 取得最大的列号
- $allColumn = $currentSheet->getHighestColumn();
- // 取得一共有多少行
- $allRow = $currentSheet->getHighestRow();
- // 从第二行开始输出,因为excel表中第一行为列名
- for($currentRow = 2;$currentRow <= $allRow;$currentRow++){
- /**从第A列开始输出*/
- //echo $allColumn;
- for($currentColumn= 'A';$currentColumn<= $allColumn; $currentColumn++){
- $val = $currentSheet->getCellByColumnAndRow(ord($currentColumn) - 65,$currentRow)->getValue();
- //print_r($val);
- //die;
- if($currentColumn == 'A')
- {
- //echo $val."\t";
- }else if($currentColumn <= $allColumn){
- $data1[$currentColumn]=$val;
- }
- }
- foreach($data as $key=>$val){
- $data2[$val]=$data1[$key];
- }
- $this->db->insert($tablename,$data2);
- //print_r($data2);
- //echo "</br>";
- }
- //echo "\n";
- echo "导入成功";
- }
导出
- header("Content-type:application/vnd.ms-excel");
- header("Content-Disposition:attachment;filename=123.xls");
- $array=$this->db->get("shop_address")->result_array();
- $str = "Id\tName\tPid\n";
- foreach ($array as $val) {
- $str .= $val['id'] . "\t" .$val['name'] . "\t" . $val['pid'] . "\n";
- }
- echo $str;
PHP实现excel的更多相关文章
- 【造轮子】打造一个简单的万能Excel读写工具
大家工作或者平时是不是经常遇到要读写一些简单格式的Excel? shit!~很蛋疼,因为之前吹牛,就搞了个这东西,还算是挺实用,和大家分享下. 厌烦了每次搞简单类型的Excel读写?不怕~来,喜欢流式 ...
- excel 日期/数字格式不生效需要但双击才会生效的解决办法
原因: Excel2007设置过单元格格式后,并不能立即生效必须挨个双击单元格,才能生效.数据行很多.效率太低. 原因:主要是一些从网上拷贝过来的日期或数字excel默认为文本格式或特殊-中文数字格式 ...
- C# Excel导入、导出【源码下载】
本篇主要介绍C#的Excel导入.导出. 目录 1. 介绍:描述第三方类库NPOI以及Excel结构 2. Excel导入:介绍C#如何调用NPOI进行Excel导入,包含:流程图.NOPI以及C#代 ...
- Word/Excel 在线预览
前言 近日项目中做到一个功能,需要上传附件后能够在线预览.之前也没做过这类似的,于是乎就查找了相关资料,.net实现Office文件预览大概有这几种方式: ① 使用Microsoft的Office组件 ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(63)-Excel导入和导出-自定义表模导入
系列目录 前言 上一节使用了LinqToExcel和CloseXML对Excel表进行导入和导出的简单操作,大家可以跳转到上一节查看: ASP.NET MVC5+EF6+EasyUI 后台管理系统(6 ...
- C#中如何给Excel添加水印
我们知道Microsoft Excel并没有内置的功能直接给Excel表添加水印,但是其实我们可以用其他变通的方式来解决此问题,如通过添加页眉图片或艺术字的方法来模仿水印的外观.所以在这篇文章中,我将 ...
- C#中如何在Excel工作表创建混合型图表
在进行图表分析的时候,我们可能需要在一张图表呈现两个或多个样式的图表,以便更加清晰.直观地查看不同的数据大小和变化趋势.在这篇文章中,我将分享C#中如何在一张图表中创建不同的图表类型,其中包括如何在同 ...
- 【C#附源码】数据库文档生成工具支持(Excel+Html)
[2015] 很多时候,我们在生成数据库文档时,使用某些工具,可效果总不理想,不是内容不详细,就是表现效果一般般.很多还是word.html的.看着真是别扭.本人习惯用Excel,所以闲暇时,就简单的 ...
- 免费高效实用的.NET操作Excel组件NPOI(.NET组件介绍之六)
很多的软件项目几乎都包含着对文档的操作,前面已经介绍过两款操作文档的组件,现在介绍一款文档操作的组件NPOI. NPOI可以生成没有安装在您的服务器上的Microsoft Office套件的Excel ...
- C#通过NPOI操作Excel
参考页面: http://www.yuanjiaocheng.net/webapi/create-crud-api-1-post.html http://www.yuanjiaocheng.net/w ...
随机推荐
- 【HDFS】相关概念及常用命令
本文用于记录Hadoop中HDFS相关概念以及常用命令,以便日后查询. 概念之间无先后顺序,只是用于记录. 参考的Hadoop的版本是2.7.3 1. 角色 hadoop fs [hdfs dfs] ...
- Linux系列教程(八)——Linux常用命令之压缩和解压缩命令
前面一篇博客我们讲解了Linux帮助和用户管理命令,对于帮助命令,man 命令能获得命令和配置文件的帮助信息,help命令能获得shell内置命令的帮助信息.我们可以通过which来区分什么是shel ...
- 菱形开合的实现 IOS
实现的原理: 利用了自动布局和形变 核心代码块: @implementation JHMainView { UILabel *label1,*label2,*label3,*label4; UIBut ...
- MUI点击事件获取当前对象,及当前对象的属性值
//用惯了jquery,开始用mui还是有些不习惯 //直接贴代码吧 <nav class="mui-bar mui-bar-tab"> <a class=&qu ...
- C++获取Windows7 32位系统中所有进程名(类似于任务管理器中的进程)
代码是网上查找资料,然后自己调试,修改之后可以运行. 系统:win7 32位,VS2008 ------------------------------------------------------ ...
- Count the Colors
Count the Colors Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%lld & %llu Subm ...
- Cup
Cup Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submissio ...
- 分析Array.apply(null, { length: 5 })
Array.apply(null, { length: 5 }) 和 Array(5)有什么不同 注意:ES5,apply函数的第二个参数除了可以是数组外,还可以是类数组对象 // 类转成真正的数组 ...
- CI脚本异常退出问题定位
背景 在CI脚本中,使用类似如下脚本进行项目编译的计时,但在执行过程中,有时会出现CI脚本(命名为ci.sh)未完全执行的情况: #!/bin/bash -e sleep_time=$1 start_ ...
- Jenkins TFS配置
1. 在Jenkins中安装TFS插件 2. 在Build Server上安装tfs客户端程序,用来访问代码服务器获取代码, 这一部是由TFS Anywhere完成的 下载TFS Anywhere h ...