导出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 导入导出的更多相关文章

  1. 使用PHPExcel导入导出excel格式文件

    使用PHPExcel导入导出excel格式文件  作者:zccst  因为导出使用较多,以下是导出实现过程.  第一步,将PHPExcel的源码拷贝到项目的lib下  文件包含:PHPExcel.ph ...

  2. 黄聪:超实用的PHPExcel[导入][导出]实现方法总结

    首先需要去官网https://github.com/PHPOffice/PHPExcel/下载PHPExcel,下载后只需要Classes目录下的文件即可. 1.PHPExcel导出方法实现过程 /* ...

  3. PHPExcel导入导出 若在thinkPHP3.2中使用(无论实例还是静态调用(如new classname或classname::function)都必须加反斜杠,因3.2就命名空间,如/classname

    php利用PHPExcel类导出导入Excel用法 来源:   时间:2013-09-05 19:26:56   阅读数: 分享到: 16 [导读] PHPExcel类是php一个excel表格处理插 ...

  4. thinkphp5 使用PHPExcel 导入导出

    首先下载PHPExcel类.网上很多,自行下载. 然后把文件放到vendor文件里面. 一般引用vendor里面的类或者插件用vendor(); 里面加载的就是vendor文件,然后想要加载哪个文件, ...

  5. phpexcel导入导出

    先下载类文件,将类文件放到lib下,然后到入口文件定义一个新的的路径,以便引入文件.    <?php namespace app\index\controller; use think\Con ...

  6. 【PHP】使用phpoffice/phpexcel导入导出数据

    本例以thinkphp5.1为例 包地址: https://packagist.org/packages/phpoffice/phpexcel 使用: composer require phpoffi ...

  7. phpexcel使用说明5----ThinkPHP+PHPExcel[导入][导出]实现方法

    转自:http://www.thinkphp.cn/code/403.html实现步骤: 注意:phpexcel必须是1.78版本的,不能用1.8以上的 一:去官网http://phpexcel.co ...

  8. phpcms 用phpexcel导入导出excel

    html <form method="post" action="?m=content&c=content&a=public_add_excel&q ...

  9. phpexcel 导入导出excel表格

    phpexcel中文实用手册 转载:http://www.cnblogs.com/freespider/p/3284828.html 下面是总结的几个使用方法 include 'PHPExcel.ph ...

随机推荐

  1. 重新定位svn地址的方法(windows和linux),svn switch(sw)的帮助信息

    今天公司的路由器出现问题,服务器的IP地址也跟着变了,但是原来的svn已经设置好了,现在需要更换地址 查询原地址的方法: root@jack-desktop:codes# svn info 路径: . ...

  2. PLSQL_闪回删除FlashBack Delete表误删除如何进行恢复(案例)

    2014-07-02 Created By BaoXinjian

  3. FileSystemWatcher

    转:http://www.cnblogs.com/zhaojingjing/archive/2011/01/21/1941586.html 注意:用FileWatcher的Created监控文件时,是 ...

  4. laravel5.2 移植到新服务器上除了“/”路由 ,其它路由对应的页面显示报404错误(Object not found!)———新装的LAMP没有加载Rewrite模块

    Laravel 框架通过 public/.htaccess 文件来让网址不需要 index.php.如果你的服务器是使用 Apache,请确认是否有开启 mod_rewrite 模块.如果 Larav ...

  5. Jetty服务器jmx监控

    Jetty服务器jmx监控 Jetty 服务器增加jmx,jmx-remote模块 1.修改对应jetty服务器的配置文件start.ini追加如下两行–module=jmx–module=jmx-r ...

  6. html table单双行颜色间隔(转载)

    直接上代码: <html> <head> <meta http-equiv="Content-Type" content="text/htm ...

  7. 20145305 《Java程序设计》第10周学习总结

    学习内容总结 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据,这个就是狭义的网络编程范畴.在发送和接收数据时, ...

  8. 创建一个struts2的HelloWorld

    1.下载struts2的jar包 http://struts.apache.org/download.cgi#struts255 下载一个稳定版本Struts 2.3.31 里面提供了maven ja ...

  9. HTML5的动画学习历程

    一.三角学原理. function getRadio(d){//根据角度获得弧度,                return d*Math.PI/180;                }, fun ...

  10. (Array) 一个 N*N 的矩阵,每一行从左到右有序,每一列从上到下有序,都是递增,写个程序,判断一个数是否在矩阵中。

    int search(int d[N][N], int key) { int i1, i2, j1, j2; i1 = j1 = 0; i2 = j2 = N-1; while(i1 < i2 ...