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.开发 ...
随机推荐
- ATMEGA的SPI总线 - 第1部分
转自: 1. https://www.yiboard.com/thread-782-1-1.html 2.https://mansfield-devine.com/speculatrix/2018/0 ...
- 如何确定芯片pin1的位置
来源:https://www.raviyp.com/embedded/150-identifying-pin-no-1-on-an-ic Identifying pin no 1 on an IC R ...
- Allegro PCB 转 PADS Layout
操作系统:Windows 10 x64 工具1:Allegro PCB Design XL (legacy) version 16.6-2015 工具2:PADS Layout VX.2.3 参考1: ...
- STM32之旅6——WWDG
WWDG是stm32f103的窗口看门狗,使用的时钟是APB1的时钟,在使用wwdg是被一个小问题困扰了很久--没有打开中断,无法喂狗,一直复位. 初始化完之后需要使能中断: __HAL_WWDG_E ...
- 转C++了
积极响应"某王"的号召,联赛之后转C辣!(好吧,其实是它拿着一把西瓜刀顶在我背后逼我转的)
- 算法进阶 (LIS变形) 固定长度截取求最长不下降子序列【动态规划】【树状数组】
先学习下LIS最长上升子序列 看了大佬的文章OTZ:最长上升子序列 (LIS) 详解+例题模板 (全),其中包含普通O(n)算法*和以LIS长度及末尾元素成立数组的普通O(nlogn)算法,当然还 ...
- golang API 请求队列
概要 实现思路 使用方法 启动队列服务 使用队列服务 概要 在调用第三方 API 的时候, 基本都有访问限速的限制条件. 第三方的 API 有多个的时候, 就不太好控制访问速度, 常常会导致 HTTP ...
- TiOps,支持容器,支持多云安全远程运维,疫情期间免费开放,助力远程办公
TiOps,支持多云环境安全远程运维,疫情期间免费对外开放在疫情期间,为减少疾病传染可能性,许多公司的选择了在家远程办公.对于运维来说,既要远程运维,又要保证安全,还要在复杂的IT环境中保持高效,面临 ...
- Exists 和Not Exists使用
描述:exists表示()内子查询语句返回结果不为空说明where条件成立就会执行主sql语句,如果为空就表示where条件不成立,sql语句就不会执行.not exists和exists相反,子查询 ...
- 联赛模拟测试17 A. 简单的区间 启发式合并
题目描述 分析 我们要找的是一段区间的和减去该区间的最大值能否被 \(k\) 整除 那么对于一段区间,我们可以先找出区间中的最大值 然后枚举最大值左边的后缀与最大值右边的前缀之和是否能被 \(k\) ...