导出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. 黄聪:wordpress中PHP运行错最有效解决办法Fatal error: Out of memory (allocated 6029312)(转)

    近日在升级wordpress 3.2.1和若干插件的过程中,发现了一个wordpress的错误:Allowed memory size of XXX bytes exhausted Fatal err ...

  2. CE_现金的利息设定和计算(案例)

    2014-07-15 Created By BaoXinjian 一.摘要 存款利率指客户按照约定条件存入银行帐户的货币,一定时间内利息额同贷出金额即本金的利率.有活期利率和定期利率之分,有年/月/日 ...

  3. PLSQL_Oracle Table Lock表级锁的处理(案例)

    20150506 Created By BaoXinjian

  4. XueXX and Chessboard(dp)

    题解: 本题是DP,状态转移方程是dp[i][j]=dp[i-1][j]+dp[i][j-1],只不过要加上许多判断,最后即可求出答案,要注意输入从1开始输入,并且dp[0][1]=1,这样才能使dp ...

  5. 大神:python怎么爬取js的页面

    大神:python怎么爬取js的页面 可以试试抓包看看它请求了哪些东西, 很多时候可以绕过网页直接请求后面的API 实在不行就上 selenium (selenium大法好) selenium和pha ...

  6. pedagogical

    在线考试     // '+this+''; }); //alert(错了); $("#ans").html(html); } function clk(obj){ var inp ...

  7. Linux中记录终端(Terminal)输出到文本文件(转载)

    一,如何把命令运行的结果保存到文件当中? 这个问题太简单了,大家都知道,用 > 把输出转向就可以了 例子: [lhd@hongdi ~]$ ls > ls.txt [lhd@hongdi ...

  8. python输出重定向

    0表示标准输入1表示标准输出2表示标准错误输出> 默认为标准输出重定向,与 1> 相同2>&1 意思是把 标准错误输出 重定向到 标准输出.&>file 意思是 ...

  9. 什么是bower

    Bower是一个客户端技术的软件包管理器,它可用于搜索.安装和卸载如JavaScript.HTML.CSS之类的网络资源.其他一些建立在Bower基础之上的开发工具,如YeoMan和Grunt,这个会 ...

  10. shell export

    export命令将使系统在创建每一个新的shell时定义这个变量的一个拷贝.这个过程称之为变量输出. 在脚本中export,跟在终端export原理一样. 他们都是一个子shell. http://b ...