phpexcel 导入导出
导出excel
/**
* 以下是使用示例,对于以 //// 开头的行是不同的可选方式,请根据实际需要
* 打开对应行的注释。
* 如果使用 Excel5 ,输出的内容应该是GBK编码。
*/
//require_once 'PHPExcel.php';
// uncomment
////require_once 'PHPExcel/Writer/Excel5.php'; // 用于其他低版本xls
// or
////require_once 'PHPExcel/Writer/Excel2007.php'; // 用于 excel-2007 格式
$objExcel = new PHPExcel(); // 创建一个处理对象实例
// 创建文件格式写入对象实例, uncomment
$objWriter = new PHPExcel_Writer_Excel5($objExcel); // 用于其他版本格式
// or
////$objWriter = new PHPExcel_Writer_Excel2007($objExcel); // 用于 2007 格式
//$objWriter->setOffice2003Compatibility(true); //*************************************
//设置文档基本属性
$objProps = $objExcel->getProperties();
//$objProps->setCreator("Zeal Li");
//$objProps->setLastModifiedBy("Zeal Li");
//$objProps->setTitle("Office XLS Test Document");
//$objProps->setSubject("Office XLS Test Document, Demo");
//$objProps->setDescription("Test document, generated by PHPExcel.");
//$objProps->setKeywords("office excel PHPExcel");
//$objProps->setCategory("Test"); //*************************************
//设置当前的sheet索引,用于后续的内容操作。
//一般只有在使用多个sheet的时候才需要显示调用。
//缺省情况下,PHPExcel会自动创建第一个sheet被设置SheetIndex=0 $objExcel->setActiveSheetIndex(0);
$objActSheet = $objExcel->getActiveSheet(); //设置当前活动sheet的名称
$objActSheet->setTitle('测试Sheet'); //设置单元格内容
//
//由PHPExcel根据传入内容自动判断单元格内容类型
$objActSheet->setCellValue('A1', '字符串内容'); // 字符串内容
$objActSheet->setCellValue('A2', 26); // 数值
$objActSheet->setCellValue('A3', true); // 布尔值
$objActSheet->setCellValue('A4', '=SUM(A2:A2)'); // 公式 //显式指定内容类型
$objActSheet->setCellValueExplicit('A5', '847475847857487584',
PHPExcel_Cell_DataType::TYPE_STRING); //合并单元格
$objActSheet->mergeCells('B1:C22'); //分离单元格
$objActSheet->unmergeCells('B1:C22'); //*************************************
//设置单元格样式
// //设置宽度
$objActSheet->getColumnDimension('B')->setAutoSize(true);
$objActSheet->getColumnDimension('A')->setWidth(30); $objStyleA5 = $objActSheet->getStyle('A5'); //设置单元格内容的数字格式。
//
//如果使用了 PHPExcel_Writer_Excel5 来生成内容的话,
//这里需要注意,在 PHPExcel_Style_NumberFormat 类的 const 变量定义的
//各种自定义格式化方式中,其它类型都可以正常使用,但当setFormatCode
//为 FORMAT_NUMBER 的时候,实际出来的效果被没有把格式设置为"0"。需要
//修改 PHPExcel_Writer_Excel5_Format 类源代码中的 getXf($style) 方法,
//在 if ($this->_BIFF_version == 0x0500) { (第363行附近)前面增加一
//行代码:
//if($ifmt === '0') $ifmt = 1;
//
//设置格式为PHPExcel_Style_NumberFormat::FORMAT_NUMBER,避免某些大数字
//被使用科学记数方式显示,配合下面的 setAutoSize 方法可以让每一行的内容
//都按原始内容全部显示出来。
$objStyleA5
->getNumberFormat()
->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER); //设置字体
$objFontA5 = $objStyleA5->getFont();
$objFontA5->setName('Courier New');
$objFontA5->setSize(10);
$objFontA5->setBold(true);
$objFontA5->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);
$objFontA5->getColor()->setARGB('FF999999'); //设置对齐方式
$objAlignA5 = $objStyleA5->getAlignment();
$objAlignA5->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
$objAlignA5->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); //设置边框
$objBorderA5 = $objStyleA5->getBorders();
$objBorderA5->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objBorderA5->getTop()->getColor()->setARGB('FFFF0000'); // color
$objBorderA5->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objBorderA5->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objBorderA5->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN); //设置填充颜色
$objFillA5 = $objStyleA5->getFill();
$objFillA5->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
$objFillA5->getStartColor()->setARGB('FFEEEEEE'); //从指定的单元格复制样式信息.
$objActSheet->duplicateStyle($objStyleA5, 'B1:C22'); //*************************************
//添加图片
$objDrawing = new PHPExcel_Worksheet_Drawing();
$objDrawing->setName('ZealImg');
$objDrawing->setDescription('Image inserted by Zeal');
$objDrawing->setPath('./zeali.net.logo.gif');
$objDrawing->setHeight(36);
$objDrawing->setCoordinates('C23');
$objDrawing->setOffsetX(10);
$objDrawing->setRotation(15);
$objDrawing->getShadow()->setVisible(true);
$objDrawing->getShadow()->setDirection(36);
$objDrawing->setWorksheet($objActSheet); //添加一个新的worksheet
$objExcel->createSheet();
$objExcel->getSheet(1)->setTitle('测试2'); //保护单元格
$objExcel->getSheet(1)->getProtection()->setSheet(true);
$objExcel->getSheet(1)->protectCells('A1:C22', 'PHPExcel'); //*************************************
//输出内容
// $outputFileName = $title . ".xls";
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header('Content-Disposition:attachment;filename="' . $outputFileName . '"'); //到文件
////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");
$objWriter->save('php://output');
example:
$phpexcelPath = APPPATH.'libraries/phpexcel_1.8.0_doc/classes/PHPExcel.php'; //CI引入PHPExcel
$objPHPExcel = new PHPExcel();
//set width
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth('50');
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth('50');
$firstSheet = $objPHPExcel->setActiveSheetIndex(0);
$firstSheet->setCellValue('A1',"好呀");
$firstSheet->setCellValue('B1',date('Y-m-d H:i:s',time()));
$firstSheet->setCellValue('A2',"dd hello");
$firstSheet->setCellValue('B2',$this->gbk_to_utf8("哈哈呵可耶 hello"));// 哈哈呵可耶 hello
//Rename sheet
$objPHPExcel->getActiveSheet()->setTitle("Simple");
//set active sheet index to the first sheet.
$objPHPExcel->setActiveSheetIndex(0);
//save excel
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel2007');//Excel2007 Excel5
$fileName = "order_information";
// $dirName=APPPATH."../upload/";
// if(!opendir($dirName))
// mkdir($dirName);
// $objWriter->save($dirName.$fileName.'.xlsx'); // 到磁盘
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header('Content-Disposition:attachment;filename="' . $fileName . '.xlsx"'); //到文件
////header('Content-Disposition:inline;filename="'.$outputFileName.'"'); //到浏览器
header("Content-Transfer-Encoding: binary");
$objWriter->save('php://output');
PHPExcel常用方法汇总
导入excel
$PHPExcel = new PHPExcel(); /**默认用excel2007读取excel,若格式不对,则用之前的版本进行读取*/
$PHPReader = new PHPExcel_Reader_Excel2007();
if (!$PHPReader->canRead($filePath)) {
$PHPReader = new PHPExcel_Reader_Excel5();
if (!$PHPReader->canRead($filePath)) {
echo 'no Excel';
return;
}
}
$PHPExcel = $PHPReader->load($filePath);
$currentSheet = $PHPExcel->getSheet(0); /* * 读取excel文件中的第一个工作表 */
$allColumn = $currentSheet->getHighestColumn();/**取得最大的列号*/
$allRow = $currentSheet->getHighestRow(); /* * 取得一共有多少行 */
PHPExcel_Cell::columnIndexFromString(); //字母列转换为数字列 如:AA变为27
for ($currentRow = 2; $currentRow <= $allRow; $currentRow = $currentRow + 2) {
$pair_name = $currentSheet->getCellByColumnAndRow(0, $currentRow)->getValue();
$trailtime = $currentSheet->getCellByColumnAndRow(3, $currentRow)->getValue();
$trailtime = date("Y-m-d H:i:s", PHPExcel_Shared_Date::ExcelToPHP($trailtime) - 28800); //时间的转换 }
public function excel_start_card_import(){
$this->_check_admin_permission('启动卡池管理');
$xlsfile = @$_FILES['xlsfile'];
if($xlsfile['name']){
$result = $this->getExcelData($xlsfile['tmp_name'],'excel/excel_start_card_import');
$success_num = 0;
$all_num = count($result);
$allFieldCount = 24;
//用事务提交
$this->model_common->query('BEGIN');
for($i = 0; $i<$all_num ;$i++){
if($allFieldCount != count($result[$i]))
{
$this->_admin_prompt(site_url('excel/excel_start_card_import'), "Excel表格的数据数目与表字段不符!请检查Excel表格的数据.");
exit;
}
$sql = "insert into o_active_cardpool (
MOBILE,COUNTRY_CODE,OPERATOR,AREA_NUM,STANDARD_TYPE,
CARD_VERSION,NUM,ICCID,IMSI,UIMID,SID,ACCOLC,NID,AKEY,
PIN1,PIN2,PUK1,PUK2,ADM,HRPDUPP,HRPDSS,STATUS,
BEGIN_TIME,END_TIME)
VALUES('{$result[$i][0]}','{$result[$i][1]}','{$result[$i][2]}','{$result[$i][3]}','{$result[$i][4]}'
,'{$result[$i][5]}','{$result[$i][6]}','{$result[$i][7]}','{$result[$i][8]}'
,'{$result[$i][9]}','{$result[$i][10]}','{$result[$i][11]}','{$result[$i][12]}'
,'{$result[$i][13]}','{$result[$i][14]}','{$result[$i][15]}','{$result[$i][16]}'
,'{$result[$i][17]}','{$result[$i][18]}','{$result[$i][19]}','{$result[$i][20]}'
,'{$result[$i][21]}','{$result[$i][22]}','{$result[$i][23]}')";
if($this->model_common->query($sql))
$success_num++;
if($i%5000==0){
$this->model_common->query('COMMIT');
$this->model_common->query('BEGIN');
}
}
$this->model_common->query('COMMIT');
$this->_admin_prompt(site_url('excel/excel_start_card_import'), "数据导入成功!总数是:{$all_num} 成功数是:{$success_num}");
exit;
}
$data = array();
$this->_set_data($data);
$this->_set_view('excel_start_card_import',$this->_DATA);
}
private function getExcelData($pathName,$redirectUrl)
{
//$phpExcel = new PHPExcel();
$PHPReader = new PHPExcel_Reader_Excel2007();
if(!$PHPReader->canRead($pathName)){
$PHPReader = new PHPExcel_Reader_Excel5();
if(!$PHPReader->canRead($pathName)){
$this->_admin_prompt(site_url($redirectUrl), "抱歉,不能读取该文件!");
exit;
}
}
$phpExcel = $PHPReader->load($pathName);
$currentSheet = $phpExcel->getSheet(0); //得到第一个sheet工作区
$allColumn = $currentSheet->getHighestColumn(); //总列数
$allRow = $currentSheet->getHighestRow(); //总行数
$result = array();
for($currentRow = 2;$currentRow<=$allRow;$currentRow++){
//遍历行中的每个字段
for($currentColumn = 'A';$currentColumn<=$allColumn; $currentColumn++){
$val = $currentSheet->getCellByColumnAndRow(ord($currentColumn)-65,$currentRow)->getValue();
// $val = $currentSheet->getCell($currentColumn.$currentRow)->getValue();//A1
// if($val===NULL)
// break;
if($val instanceof PHPExcel_RichText)
$val = $val->__toString();
$val = $this->utf8_to_gbk($val);
$result[$currentRow-2][ord($currentColumn)-65] = $val;
}
}
//var_dump($this->utf8_to_gbk($currentSheet->getHighestColumn().' - '.$currentSheet->getHighestRow()));
return $result;
}
phpexcel 导入导出的更多相关文章
- 使用PHPExcel导入导出excel格式文件
使用PHPExcel导入导出excel格式文件 作者:zccst 因为导出使用较多,以下是导出实现过程. 第一步,将PHPExcel的源码拷贝到项目的lib下 文件包含:PHPExcel.ph ...
- 黄聪:超实用的PHPExcel[导入][导出]实现方法总结
首先需要去官网https://github.com/PHPOffice/PHPExcel/下载PHPExcel,下载后只需要Classes目录下的文件即可. 1.PHPExcel导出方法实现过程 /* ...
- PHPExcel导入导出 若在thinkPHP3.2中使用(无论实例还是静态调用(如new classname或classname::function)都必须加反斜杠,因3.2就命名空间,如/classname
php利用PHPExcel类导出导入Excel用法 来源: 时间:2013-09-05 19:26:56 阅读数: 分享到: 16 [导读] PHPExcel类是php一个excel表格处理插 ...
- thinkphp5 使用PHPExcel 导入导出
首先下载PHPExcel类.网上很多,自行下载. 然后把文件放到vendor文件里面. 一般引用vendor里面的类或者插件用vendor(); 里面加载的就是vendor文件,然后想要加载哪个文件, ...
- phpexcel导入导出
先下载类文件,将类文件放到lib下,然后到入口文件定义一个新的的路径,以便引入文件. <?php namespace app\index\controller; use think\Con ...
- 【PHP】使用phpoffice/phpexcel导入导出数据
本例以thinkphp5.1为例 包地址: https://packagist.org/packages/phpoffice/phpexcel 使用: composer require phpoffi ...
- phpexcel使用说明5----ThinkPHP+PHPExcel[导入][导出]实现方法
转自:http://www.thinkphp.cn/code/403.html实现步骤: 注意:phpexcel必须是1.78版本的,不能用1.8以上的 一:去官网http://phpexcel.co ...
- phpcms 用phpexcel导入导出excel
html <form method="post" action="?m=content&c=content&a=public_add_excel&q ...
- phpexcel 导入导出excel表格
phpexcel中文实用手册 转载:http://www.cnblogs.com/freespider/p/3284828.html 下面是总结的几个使用方法 include 'PHPExcel.ph ...
随机推荐
- C#全角和半角转换
在计算机屏幕上,一个汉字要占两个英文字符的位置,人们把一个英文字符所占的位置称为"半角",相对地把一个汉字所占的位置称为"全角".在汉字输入时,系统提供&quo ...
- web开发
教程 html教程 CSS 教程 JavaScript 教程 参考手册 HTML 4.01 / XHTML 1.0 参考手册 CSS 参考手册 JavaScript 参考手册 PHP 手册 CodeI ...
- iphone dev 入门实例2:Pass Data Between View Controllers using segue
Assigning View Controller Class In the first tutorial, we simply create a view controller that serve ...
- MVC entity
1>MVC entity 1)Employee public string Id{get;private set;} public string Name{get;private set;} p ...
- laravel下使用阿里云oss上传图片
对小公司而言,使用阿里云oss比直接买硬盘要划算的多,不管从存储性价比上还是从网速负载上.最近因为公司的项目有比较大的图片存储访问需求,所以决定使用阿里云的oss. 在研究了一下以后,摆着不自己造轮子 ...
- iPhone播放音乐
来源:http://blog.csdn.net/htttw/article/details/7842295 iPhone播放音乐 今天我们简要介绍如何在iPhone中播放音乐: 强烈建议你参考官方文档 ...
- 将access数据库导入mysql
一般地,直接在mysql端,导入时选择access文件就行:但是若access数据库版本太老,导入mysql时会出错: 这时,就需要借助access 2003,对原始数据进行转换为2003版本数据,即 ...
- [Flex] ButtonBar系列——flex3 ButtonBar各项之间的间距调整
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="h ...
- 回朔法/KMP算法-查找字符串
回朔法:在字符串查找的时候最容易想到的是暴力查找,也就是回朔法.其思路是将要寻找的串的每个字符取出,然后按顺序在源串中查找,如果找到则返回true,否则源串索引向后移动一位,再重复查找,直到找到返回t ...
- jquery ui autocomplete combox格式设置
<style> .custom-combobox {//设置输入框格式 position: relative; display: inline-block; width: 62%; } . ...