CI框架导入 excel
整合PHP Excel和PHPexcelReader到
<?php
class Excel extends Controller {
public function __construct() {
parent::Controller();
//初始化读取excel类
@$this->load->library("reader");
$reader = @$this->reader;
$reader->setOutputEncoding('UTF-8');
}
/// 将1的内容合并到2的内容当中从而生成3
public function getExcelContent(){
header("content-type:text/html;charset=utf-8");
$this -> load -> library('Excel/PHPExcel.php');
$this->load->library('Excel/PHPExcel/Reader/PHPExcel_Reader_Excel5.php');
$objReader=new PHPExcel_Reader_Excel5();
$objPHPExcel = new PHPExcel();
$data2=array();
$excel2="/home/wwwroot/excel/crs_edu_old/public/admin/system/excel/zsgxry_2.xls";
$this->reader->read($excel2);
$numRows1 = $this->reader->sheets [0] [numRows];
$numCols1 = $this->reader->sheets [0] [numCols];
$project1 = $this->reader->sheets [0] [cells];
if ($numRows1 > 0 && $numCols1 > 0) {
for($i=2;$i<=$numRows1;$i++){
$data2[$i]['id']=$project1[$i][1];
$data2[$i]['company']=$project1[$i][2];
$data2[$i]['name']=$project1[$i][3];
$data2[$i]['sex']=$project1[$i][4];
$data2[$i]['birthday']=$project1[$i][5];
$data2[$i]['cankao']=$project1[$i][6];
}
}
$excel1="/home/wwwroot/excel/crs_edu_old/public/admin/system/excel/zsgxry_1.xls";
$objPHPExcel = $objReader->load($excel1);
//获取sheet表数目
$sheetCount = $objPHPExcel->getSheetCount();
//默认选中sheet0表
$sheetSelected = 0;
$objPHPExcel->setActiveSheetIndex($sheetSelected);
//获取表格行数
$rowCount = $objPHPExcel->getActiveSheet()->getHighestRow();
//获取表格列数
$columnCount = $objPHPExcel->getActiveSheet()->getHighestColumn();
$dataArr = array();
/** 循环读取每个单元格的数据 */
//行数循环
for ($row = 2; $row <= $rowCount; $row++){
//列数循环 , 列数是以A列开始
for ($column = 'E'; $column < $columnCount; $column++) {
//第一出现的位置不区分大小写 ,
if(stripos($objPHPExcel->getActiveSheet()->getCell("E".$row)->getValue(),",")>0){
$data_arr=explode(",",$objPHPExcel->getActiveSheet()->getCell("E".$row)->getValue());
foreach($data_arr as $val){
$dataArr[$row]["E"].=$val.";";
}
$dataArr[$row]["E"]=rtrim($dataArr[$row]["E"],";");
//第一出现的位置不区分大小写 、
}elseif(stripos($objPHPExcel->getActiveSheet()->getCell("E".$row)->getValue(),"、")){
$data_arr1=explode("、",$objPHPExcel->getActiveSheet()->getCell("E".$row)->getValue());
foreach($data_arr1 as $val){
$dataArr[$row]["E"].=$val.";";
}
$dataArr[$row]["E"]=rtrim($dataArr[$row]["E"],";");
}else{
$dataArr[$row]["E"] = $objPHPExcel->getActiveSheet()->getCell("E".$row)->getValue();
}
$dataArr[$row]["F"] = $objPHPExcel->getActiveSheet()->getCell("F".$row)->getValue();
}
}
$objPHPExcel -> getDefaultStyle() -> getFont() -> setSize(10);
$objPHPExcel->getActiveSheet()->getStyle('C')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
$objPHPExcel -> setActiveSheetIndex(0)
-> setCellValue('A1', '干部id(不可改)')
-> setCellValue('B1', '单位(不可改)')
-> setCellValue('C1', '姓名(不可改)')
-> setCellValue('D1', '性别(不可改)')
-> setCellValue('E1', '生日(不可改)')
-> setCellValue('F1', '职务参考(任免审批表填写职务)')
-> setCellValue('G1', '职务统计(可选值:党)')
-> setCellValue('H1', '排序(填写自然数字)');
$num1=count($data2);
foreach($data2 as $i=>$val){
$objPHPExcel -> getActiveSheet()-> setCellValue('A'.$i, $data2[$i]['id']);
$objPHPExcel -> getActiveSheet()-> setCellValue('B'.$i, $data2[$i]['company']);
$objPHPExcel -> getActiveSheet()-> setCellValue('C'.$i, $data2[$i]['name']);
$objPHPExcel -> getActiveSheet()-> setCellValue('D'.$i, $data2[$i]['sex']);
$objPHPExcel -> getActiveSheet()-> setCellValue('E'.$i, $data2[$i]['birthday']);
$objPHPExcel -> getActiveSheet()-> setCellValue('F'.$i, $data2[$i]['cankao']);
$objPHPExcel -> getActiveSheet()-> setCellValue('G'.$i, ";".$dataArr[$i]['E'].";");
$objPHPExcel -> getActiveSheet()-> setCellValue('H'.$i, $dataArr[$i]['F']);
}
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename=11.xls');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
// $objWriter -> save("/home/wwwroot/excel/crs_edu_old/public/admin/system/excel/zsgxry.xls");
}
public function getExcel1(){
//excel1内容
$excel1="/home/wwwroot/excel/crs_edu_old/public/admin/system/excel/zsgxry_1.xls";
$this->reader->read($excel1);
$numRows =$this->reader->sheets [0] [numRows];
$numCols = $this->reader->sheets [0] [numCols];
$project = $this->reader->sheets [0] [cells];
$msg = '';$msg2='';$count=0;$count2=0;$r=0;
if ($numRows > 0 && $numCols > 0) {
for($i=2;$i<=$numRows;$i++){
if(stripos($project[$i][5],",")>0){
$data_arr=explode(",",$project[$i][5]);
foreach($data_arr as $val){
$data[$i]['position'].=$val.";";
}
$data[$i]['position']=rtrim($data[$i]['position'],";");
}else{
$data[$i]['position']=$project[$i][5];
}
$data[$i]['sorts']=$project[$i][6];
}
}
return $data;
}
public function getExcel2(){
//excel2内容
$excel2="/home/wwwroot/excel/crs_edu_old/public/admin/system/excel/zsgxry_2.xls";
$this->reader->read($excel2);
$numRows1 = $this->reader->sheets [0] [numRows];
$numCols1 = $this->reader->sheets [0] [numCols];
$project1 = $this->reader->sheets [0] [cells];
$msg = '';$msg2='';$count=0;$count2=0;$r=0;
if ($numRows1 > 0 && $numCols1 > 0) {
for($i=2;$i<=$numRows1;$i++){
$data2[$i]['id']=$project1[$i][1];
$data2[$i]['company']=$project1[$i][2];
$data2[$i]['name']=$project1[$i][3];
$data2[$i]['sex']=$project1[$i][4];
$data2[$i]['birthday']=$project1[$i][5];
$data2[$i]['cankao']=$project1[$i][6];
}
}
return $data2;
}
}
?>
CI框架导入 excel的更多相关文章
- ci框架读取上传的excel文件数据
原文链接: https://blog.csdn.net/qq_38148394/article/details/87921373 此功能实现使用到PHPExcel类库,PHPExcel是一个PHP类库 ...
- Spring Boot下的一种导入Excel文件的代码框架
1.前言 Spring Boot下如果只是导入一个简单的Excel文件,是容易的.网上类似的文章不少,有的针对具体的实体类,代码可重用性不高:有的利用反射机制或自定义注解,开发了Excel导入工具 ...
- 基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
思路: 1.首先,页面前端,上传附件,提交给后台,并带一个随机性的参数(可以用时间戳): 2.后端接收附件,做一系列的逻辑处理,无误后,将对应的文件存储在上传的目录下: 3.然后前端,上传附件成功后, ...
- [Asp.net]常见数据导入Excel,Excel数据导入数据库解决方案,总有一款适合你!
引言 项目中常用到将数据导入Excel,将Excel中的数据导入数据库的功能,曾经也查找过相关的内容,将曾经用过的方案总结一下. 方案一 NPOI NPOI 是 POI 项目的 .NET 版本.POI ...
- CI框架源码阅读笔记4 引导文件CodeIgniter.php
到了这里,终于进入CI框架的核心了.既然是“引导”文件,那么就是对用户的请求.参数等做相应的导向,让用户请求和数据流按照正确的线路各就各位.例如,用户的请求url: http://you.host.c ...
- JSP导入EXCEL样式
http://demo.gcpowertools.com.cn/spreadjs/exceliosample/exceliosample/ Java实现导入Excel: 1.做一个jsp页面,页面包括 ...
- CI框架程序--本地调试之后部署新浪SAE
前几天给朋友写了个简单的网站, 想想还是部署到服务器上让朋友看一下效果! 用CI框架写的,有个SAE新浪云的账号,可以用!就部署到上面去了!途中遇到了一些问题!一一解决了! 在这里分享一下 供遇到这些 ...
- Ci框架整合smarty模板引擎
Ci框架整合smarty模板引擎 备注:下载smarty时,最好选择2.6版本,其他测试有坑,ci可以是2.2或其他 大体思路:将smarty封装成ci框架的一个类,然后重新配置一下smarty,这样 ...
- ThinkPHP导入Excel文件(使用PHPExcel)
一. 主要知识点,用PHPExcel导入Excel数据经过这几天测试还是可以,xls,xlsx都可以获取Excel的数据.下载地址:http://phpexcel.codeplex.com/ O.开发 ...
随机推荐
- Mat对象与像素操作 OpenCV C++
Mat对象,分为两个部分,头部和数据部分 Mat对象拷贝之后是相互独立的 Mat对象有三种创建方法 CV_8UC1单通道,CV_8UC2双通道,CV_8UC3三通道,通道数 Scalar(0-255, ...
- 为自己的网页博客添加L2Dwidget.js看板娘
如果是博客园,直接在设置-->页脚 HTML 代码,加上下面代码: 1 <!-- L2Dwidget.js L2D网页动画人物 --> 2 <script src=" ...
- 系统架构设计:平滑发布和ABTesting
平滑发布的介绍 背景 单位的云办公相关系统没有成熟的平滑发布方案,导致每一次发布都是直接发布,dll文件或配置文件的变更会引起站点的重启. 云办公系统的常驻用户有10000+,即使短短半分多钟,也会收 ...
- 跟随Javac代码来解答字节码的疑惑
前言 本文是跟随掘金小册张师傅的<JVM字节码从入门到精通>练习而写的. 问题 问题一: 有如下代码: 1 package com.sun.tools.javac; 2 3 /** 4 * ...
- 算法进阶 (LIS变形) 固定长度截取求最长不下降子序列【动态规划】【树状数组】
先学习下LIS最长上升子序列 看了大佬的文章OTZ:最长上升子序列 (LIS) 详解+例题模板 (全),其中包含普通O(n)算法*和以LIS长度及末尾元素成立数组的普通O(nlogn)算法,当然还 ...
- Java防止文件被篡改之文件校验和
Java防止文件被篡改之文件校验和转载:请注明出处,谢谢! 1.为什么要防止文件被篡改? 答案是显然的,为了保证版权,系统安全性等.之前公司开发一个系统,技术核心是一个科学院院士的研究成果,作为一款 ...
- X86保护机制
目录 保护机制的开启与关闭 描述符表限长检查 段限长检查 段类型检查 类型信息的存储 类型检查 空选择子的检查 特权级检查 访问数据段时的特权级检查 访问代码段中的数据 堆栈寄存器SS的特权级检查 在 ...
- java9系列第二篇-资源自动关闭的语法增强
我计划在后续的一段时间内,写一系列关于java 9的文章,虽然java 9 不像Java 8或者Java 11那样的核心java版本,但是还是有很多的特性值得关注.期待您能关注我,我将把java 9 ...
- 【转载】opencvVS2019配置方法
环境: 系统:win10系统截至2020920版本 opencv版本:3.0.0版本 IDE:宇宙最强IDEA最新版本2019社区版 教程: 1.下载opencv安装包官网下载链接:https://o ...
- Linux下快速搭建测试网站DVWA
DVWA(Damn Vulnerable Web App)是一个基于PHP/MySql搭建的Web应用程序,旨在为安全专业人员测试自己的专业技能和工具提供合法的 环境,帮助Web开发者更好的理解Web ...