PHP与EXCEL PHPExcel

PHP与EXCEL PHPExcel

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

1、PHPExcel一个简短的引论

PHPExcel 它是用来操作Office Excel 文档PHP图书馆,它是基于微软的OpenXML标准PHP语言。能够使用它来读、写不同格电子表的类型格,例如 Excel (BIFF) .xls, Excel 2007 (OfficeOpenXML) .xlsx, CSV, Libre/OpenOffice Calc .ods, Gnumeric, PDF, HTML等等。

2、EXCEL导出文件

include 'PHPExcel.php';
include 'PHPExcel/Writer/Excel2007.php';
//或者include 'PHPExcel/Writer/Excel5.php'; 用于输出.xls的
创建一个excel
$objPHPExcel = new PHPExcel();
保存excel—2007格式
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
//或者$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); 非2007格式
$objWriter->save("xxx.xlsx");
直接输出到浏览器
$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);
header("Pragma; public");
header("Expires; 0″);
header("Cache-Control;must-revalidate, post-check=0, pre-check=0″);
header("Content-Type;application/force-download");
header("Content-Type;application/vnd.ms-execl");
header("Content-Type;application/octet-stream");
header("Content-Type;application/download");;
header('Content-Disposition;attachment;filename="resume.xls"');
header("Content-Transfer-Encoding;binary");
$objWriter->save('php;//output');
——————————————————————————————————————–
设置excel的属性:
创建人
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw");
最后改动人
$objPHPExcel->getProperties()->setLastModifiedBy("Maarten Balliauw");
标题
$objPHPExcel->getProperties()->setTitle("Office 2007 XLSX Test Document");
题目
$objPHPExcel->getProperties()->setSubject("Office 2007 XLSX Test Document");
描写叙述
$objPHPExcel->getProperties()->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.");
keyword
$objPHPExcel->getProperties()->setKeywords("office 2007 openxml php");
种类
$objPHPExcel->getProperties()->setCategory("Test result file");
——————————————————————————————————————–
设置当前的sheet
$objPHPExcel->setActiveSheetIndex(0);
设置sheet的name
$objPHPExcel->getActiveSheet()->setTitle('Simple');
设置单元格的值
$objPHPExcel->getActiveSheet()->setCellValue('A1', 'String');
$objPHPExcel->getActiveSheet()->setCellValue('A2', 12);
$objPHPExcel->getActiveSheet()->setCellValue('A3', true);
$objPHPExcel->getActiveSheet()->setCellValue('C5', '=SUM(C2;C4)');
$objPHPExcel->getActiveSheet()->setCellValue('B8', '=MIN(B2;C5)');
合并单元格
$objPHPExcel->getActiveSheet()->mergeCells('A18;E22');
分离单元格
$objPHPExcel->getActiveSheet()->mergeCells('A18;E22');
$objPHPExcel->getActiveSheet()->mergeCells('A28;B28');
$objPHPExcel->getActiveSheet()->unmergeCells('A28;B28');
保护cell
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true); // Needs to be set to true in order to enable any worksheet protection!
$objPHPExcel->getActiveSheet()->protectCells('A3;E13', 'PHPExcel');
设置格式
// Set cell number formats
echo date('H;i;s') . " Set cell number formats\n";
$objPHPExcel->getActiveSheet()->getStyle('E4')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat;;FORMAT_CURRENCY_EUR_SIMPLE);
$objPHPExcel->getActiveSheet()->duplicateStyle( $objPHPExcel->getActiveSheet()->getStyle('E4'), 'E5;E13' );
设置宽width
// Set column widths
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(12);
设置font
$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setName('Candara');
$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setSize(20);
$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setUnderline(PHPExcel_Style_Font;;UNDERLINE_SINGLE);
$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color;;COLOR_WHITE);
$objPHPExcel->getActiveSheet()->getStyle('E1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color;;COLOR_WHITE);
$objPHPExcel->getActiveSheet()->getStyle('D13')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('E13')->getFont()->setBold(true);
设置align
$objPHPExcel->getActiveSheet()->getStyle('D11')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment;;HORIZONTAL_RIGHT);
$objPHPExcel->getActiveSheet()->getStyle('D12')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment;;HORIZONTAL_RIGHT);
$objPHPExcel->getActiveSheet()->getStyle('D13')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment;;HORIZONTAL_RIGHT);
$objPHPExcel->getActiveSheet()->getStyle('A18')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment;;HORIZONTAL_JUSTIFY);
//垂直居中
$objPHPExcel->getActiveSheet()->getStyle('A18')->getAlignment()->setVertical(PHPExcel_Style_Alignment;;VERTICAL_CENTER);
设置column的border
$objPHPExcel->getActiveSheet()->getStyle('A4')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border;;BORDER_THIN);
$objPHPExcel->getActiveSheet()->getStyle('B4')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border;;BORDER_THIN);
$objPHPExcel->getActiveSheet()->getStyle('C4')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border;;BORDER_THIN);
$objPHPExcel->getActiveSheet()->getStyle('D4')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border;;BORDER_THIN);
$objPHPExcel->getActiveSheet()->getStyle('E4')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border;;BORDER_THIN);
设置border的color
$objPHPExcel->getActiveSheet()->getStyle('D13')->getBorders()->getLeft()->getColor()->setARGB('FF993300');
$objPHPExcel->getActiveSheet()->getStyle('D13')->getBorders()->getTop()->getColor()->setARGB('FF993300');
$objPHPExcel->getActiveSheet()->getStyle('D13')->getBorders()->getBottom()->getColor()->setARGB('FF993300');
$objPHPExcel->getActiveSheet()->getStyle('E13')->getBorders()->getTop()->getColor()->setARGB('FF993300');
$objPHPExcel->getActiveSheet()->getStyle('E13')->getBorders()->getBottom()->getColor()->setARGB('FF993300');
$objPHPExcel->getActiveSheet()->getStyle('E13')->getBorders()->getRight()->getColor()->setARGB('FF993300');
设置填充颜色
$objPHPExcel->getActiveSheet()->getStyle('A1')->getFill()->setFillType(PHPExcel_Style_Fill;;FILL_SOLID);
$objPHPExcel->getActiveSheet()->getStyle('A1')->getFill()->getStartColor()->setARGB('FF808080');
$objPHPExcel->getActiveSheet()->getStyle('B1')->getFill()->setFillType(PHPExcel_Style_Fill;;FILL_SOLID);
$objPHPExcel->getActiveSheet()->getStyle('B1')->getFill()->getStartColor()->setARGB('FF808080');
加图片
$objDrawing = new PHPExcel_Worksheet_Drawing();
$objDrawing->setName('Logo');
$objDrawing->setDescription('Logo');
$objDrawing->setPath('./images/officelogo.jpg');
$objDrawing->setHeight(36);
$objDrawing->setWorksheet($objPHPExcel->getActiveSheet());
$objDrawing = new PHPExcel_Worksheet_Drawing();
$objDrawing->setName('Paid');
$objDrawing->setDescription('Paid');
$objDrawing->setPath('./images/paid.png');
$objDrawing->setCoordinates('B15');
$objDrawing->setOffsetX(110);
$objDrawing->setRotation(25);
$objDrawing->getShadow()->setVisible(true);
$objDrawing->getShadow()->setDirection(45);
$objDrawing->setWorksheet($objPHPExcel->getActiveSheet());
在默认sheet后。创建一个worksheet
echo date('H;i;s') . " Create new Worksheet object\n";
$objPHPExcel->createSheet();

3、EXCEL导入

require_once 'PHPExcel/IOFactory.php';
$inputFileName = 'ceshi.xls';
$objReader = new PHPExcel_Reader_Excel5();
$objPHPExcel = $objReader->load($inputFileName);
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow(); // 取得总行数
$highestColumn = $sheet->getHighestColumn(); // 取得总列数

$tempArray = array();
for($j=2;$j<=$highestRow;$j++){
   for($k='A';$k<=$highestColumn;$k++){ 
    if($k=='M'||$k=='O') //M列和O列是时间
		$tempArray[] = excelTime($objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue());
	else
		$tempArray[] = $objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue();
	}
	print_r($tempArray);
	unset($tempArray);
}


function excelTime($date, $time = false) {
	if(function_exists('GregorianToJD')){
		if (is_numeric( $date )) {
		$jd = GregorianToJD( 1, 1, 1970 );
		$gregorian = JDToGregorian( $jd + intval ( $date ) - 25569 );
		$date = explode( '/', $gregorian );
		$date_str = str_pad( $date [2], 4, '0', STR_PAD_LEFT )
		."-". str_pad( $date [0], 2, '0', STR_PAD_LEFT )
		."-". str_pad( $date [1], 2, '0', STR_PAD_LEFT )
		. ($time ?

" 00:00:00" : ''); return $date_str; } }else{ $date=$date>25568?

$date+1:25569; /*There was a bug if Converting date before 1-1-1970 (tstamp 0)*/ $ofs=(70 * 365 + 17+2) * 86400; $date = date("Y-m-d",($date * 86400) - $ofs).($time ? " 00:00:00" : ''); } return $date;}

版权声明:本文博客原创文章。博客,未经同意,不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/117146.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Pycharm中解决Unresolved Reference问题

    Pycharm中解决Unresolved Reference问题**PyCharm中解决UnresolvedReference问题**之前看到很多博主解决遇到的pycharm中UnresolvedReference问题,作为一个萌新,我在第一次下载pycharm的时候并没有遇到这个问题,但是最近几天重新下载了pycharm之后,打开之前写的代码,出现了问题,下面分享给大家我的解决方法:进入PyCharm->File->Setting->ProjectInterpreter在最开始的时候,打开ProjectInterpreter,下

  • 简单介绍一下Spring / java中Spring框架7大核心模块的作用,如何在面试中侃侃而谈?/ Spring体系常用项目一览

    简单介绍一下Spring / java中Spring框架7大核心模块的作用,如何在面试中侃侃而谈?/ Spring体系常用项目一览合法程序媛2017-10-2309:35优效学院,名师执教,学习更优效,IT在线教育领导者。三人行必有我师,人生是需要不断学习的,在这里我们相遇就是缘分,欢迎大家加群—-四六零五七零八二四—-让我们共同进步!希望各位可以看完这篇文章,也欢迎大家在下面留言讨论,天冷了,也动动手指转发收藏一下,谢谢大家!Spring是一个开源的控制反转(InversionofC

  • 对于三极管饱和状态的理解「建议收藏」

    对于三极管饱和状态的理解「建议收藏」对于三极管饱和状态的理解https://zhidao.baidu.com/question/172715750.html问题来源对于三极管饱和状态的理解三极管如工作在饱和状态也就是开的状态,那么就是双结正偏这是书上的解释我自己的理解是这样的:饱和状态和从放大状态转变过来的,极电结和发射结正偏是结果,而不是原因就是说,三极管首先工作在放大状态,极电结反偏,发射结正偏当基级电流增大时,一直增大到三极管的非线性区(这里指的是饱和区),注意,在这一瞬间偏置情况并未改变,也就是说依然是极电结反偏,

  • Delphi中QuotedStr()

    Delphi中QuotedStr()1.定义给字符串两边加单引号并返回.声明:functionQuotedStr(constS:string):string;用函数QuotedStr把字符串S转换成为用引号括起来的字符串。单引号”’”将被插入到字符串s的最前和最后。2.范例特别可以应用在delphi的中的SQL语句,避免漏写的情况。lsstr:=…+QuotedStr(‘STR’)+…lsstr:=…+’WHERE‘’‘+‘abc‘+’’’…’QTmpR2.Close;QT

    2022年10月18日
  • Http通过header传递参数_contenttype属性

    Http通过header传递参数_contenttype属性参考地址:http://blog.csdn.net/u011936381/article/details/11985517

  • Redis面试题(2020最新版)

    Redis面试题(2020最新版)

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号