PHP操作Excel – PHPExcel 基本用法详解
- 格式:docx
- 大小:195.79 KB
- 文档页数:10
PhpSpreadsheet的简单使⽤由于PHPExcel已经不再维护,PhpSpreadsheet是PHPExcel的下⼀个版本。
PhpSpreadsheet是⼀个⽤纯PHP编写的库,并引⼊了命名空间,PSR规范等。
这⾥简单介绍下PhpSpreadsheet的导⼊导出功能。
1、安装使⽤composer安装:composer require phpoffice/phpspreadsheetGitHub下载:2、excel⽂件导出/*** excel⽂件导出*/function export(){require_once __DIR__ . '/vendor/autoload.php';$data = [['title1' => '111', 'title2' => '222'],['title1' => '111', 'title2' => '222'],['title1' => '111', 'title2' => '222']];$title = ['第⼀⾏标题', '第⼆⾏标题'];// Create new Spreadsheet object$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();$sheet = $spreadsheet->getActiveSheet();// ⽅法⼀,使⽤ setCellValueByColumnAndRow//表头//设置单元格内容foreach ($title as$key => $value) {// 单元格内容写⼊$sheet->setCellValueByColumnAndRow($key + 1, 1, $value);}$row = 2; // 从第⼆⾏开始foreach ($data as$item) {$column = 1;foreach ($item as$value) {// 单元格内容写⼊$sheet->setCellValueByColumnAndRow($column, $row, $value);$column++;}$row++;}// ⽅法⼆,使⽤ setCellValue//表头//设置单元格内容$titCol = 'A';foreach ($title as$key => $value) {// 单元格内容写⼊$sheet->setCellValue($titCol . '1', $value);$titCol++;}$row = 2; // 从第⼆⾏开始foreach ($data as$item) {$dataCol = 'A';foreach ($item as$value) {// 单元格内容写⼊$sheet->setCellValue($dataCol . $row, $value);$dataCol++;}$row++;}// Redirect output to a client’s web browser (Xlsx)header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');header('Content-Disposition: attachment;filename="01simple.xlsx"');header('Cache-Control: max-age=0');// If you're serving to IE 9, then the following may be neededheader('Cache-Control: max-age=1');// If you're serving to IE over SSL, then the following may be neededheader('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the pastheader('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modified header('Cache-Control: cache, must-revalidate'); // HTTP/1.1header('Pragma: public'); // HTTP/1.0$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xlsx'); $writer->save('php://output');exit;}结果:3、excel⽂件保存到本地/*** excel⽂件保存到本地*/function save(){require_once __DIR__ . '/vendor/autoload.php';$data = [['title1' => '111', 'title2' => '222'],['title1' => '111', 'title2' => '222'],['title1' => '111', 'title2' => '222']];$title = ['第⼀⾏标题', '第⼆⾏标题'];// Create new Spreadsheet object$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();$sheet = $spreadsheet->getActiveSheet();//表头//设置单元格内容$titCol = 'A';foreach ($title as$key => $value) {// 单元格内容写⼊$sheet->setCellValue($titCol . '1', $value);$titCol++;}$row = 2; // 从第⼆⾏开始foreach ($data as$item) {$dataCol = 'A';foreach ($item as$value) {// 单元格内容写⼊$sheet->setCellValue($dataCol . $row, $value);$dataCol++;}$row++;}// Save$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xlsx'); $writer->save('01simple.xlsx');}4、读取excel⽂件内容/*** 读取excel⽂件内容*/function read(){require_once __DIR__ . '/vendor/autoload.php';$inputFileName = dirname(__FILE__) . '/01simple.xlsx';$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($inputFileName);// ⽅法⼆$sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true); return$sheetData;}结果:可能出现的问题:1、Fatal error: Uncaught Error: Class 'PhpOffice\PhpSpreadsheet\Spreadsheet' not found 这是因为没有⾃动加载。
使用php导出excel时处理复杂表头的万能方法处理复杂表头时,使用PHP导出Excel表格的方法在使用PHP导出Excel表格时,当表头比较复杂时,可能会遇到一些困难。
然而,有一种简单而有效的方法可以处理这种情况。
首先,我们需要将表头信息保存在一个数组中。
该数组中的每个元素代表一个表头。
例如,我们可以使用以下代码定义一个包含复杂表头的数组:$tableHeaders = [['A1', 'B1', 'C1'],['A2', 'B2', 'C2'],['A3', 'B3', 'C3']];接下来,我们需要使用递归函数来合并和展开表头。
这样可以确保表头在导出Excel时正确格式化。
function mergeHeaders($headers, &$result, $startColumn = 0, $startRow = 0) {$maxRow = 1;foreach ($headers as $rowIndex => $headerRow) {foreach ($headerRow as $columnIndex => $headerCell) {$cell = $result->getActiveSheet()->getCellByColumnAndRow($columnIndex + $startColumn, $rowIndex + $startRow);$cell->setValue($headerCell);$maxRow = max($maxRow, $rowIndex + 1);}}$result->getActiveSheet()->mergeCellsByColumnAndRow($startColumn, $startRow, $startColumn + count($headers[0]) - 1, $startRow);if (count($headers) > 1) {mergeHeaders(array_slice($headers, 1), $result, $startColumn, $startRow + $maxRow);}}在上述代码中,mergeHeaders函数接受表头数组、Excel对象以及起始列和行作为参数。
phpxlswriter 是一个用于创建和修改 Excel 文件的 PHP 扩展库,通过它可以轻松地生成各种格式的 Excel 表格。
在使用 phpexcelwriter 生成 Excel 表格时,我们经常会遇到表格宽度自动调整的需求。
本文将介绍如何在使用 phpexcelwriter 时实现表格宽度的自动调整。
一、什么是 phpexcelwriter?1. PHPExcelWriter 是一个用于生成和修改 Excel 文件的 PHP 扩展库,它提供了丰富的 API 和功能,能够满足各种 Excel 处理需求。
2. 通过 PHPExcelWriter,我们可以方便地创建和修改 Excel 文件,包括设置单元格内容、样式、合并单元格、设置宽度等操作。
3. 在生成 Excel 表格时,表格宽度的自动调整是一个常见需求,能够让表格在不同显示设备上有更好的显示效果。
二、使用 phpexcelwriter 实现表格宽度的自动调整1. 设置单元格内容和样式在使用 PHPExcelWriter 生成 Excel 表格时,首先需要设置单元格的内容和样式,包括字体、颜色、对齐方式等。
这些设置可以通过PHPExcelWriter 提供的 API 来实现,具体可以参考冠方文档或示例代码。
2. 设置表头和数据在生成表格时,通常会包含表头和数据两部分。
对于表头部分,我们可以根据表格的列数和内容来设置每个单元格的宽度;对于数据部分,可以根据实际数据的长度来动态调整每个单元格的宽度。
3. 自动调整表格宽度在设置完单元格内容和样式、表头和数据后,我们可以通过PHPExcelWriter 提供的自动调整宽度的功能来实现表格宽度的自动调整。
具体可以使用以下代码来实现:```php$sheet->calculateColumnWidths();```这行代码会根据单元格内容自动调整每列的宽度,使得表格显示更加美观和规整。
4. 导出 Excel 文件当设置完表格内容和宽度后,我们可以通过 PHPExcelWriter 提供的导出功能将表格保存为 Excel 文件,以便后续使用或共享。
利⽤PHPExcel读取Excel的数据和导出数据到ExcelPHPExcel是⼀个PHP类库,⽤来帮助我们简单、⾼效实现从Excel读取Excel的数据和导出数据到Excel。
也是我们⽇常开发中,经常会遇到的使⽤场景。
⽐如有个客户信息表,要批量导出发给同事,我们就可以⽤PHPExcel来快速实现。
同样,如果我们要利⽤短信群发接⼝去群发信息,PHPExcel可以快速导⼊客户信息,避免⼈⼯录⼊信息的⿇烦。
PHPExcel使⽤教程:⾸先下载PHPExcel下载好⽂件,解压可以得到如下⽂件:PHPExcel好了,现在我们就可以⽤PHPExcel愉快的读取和制作表格了!PHPExcel DEMO1:利⽤PHPExcel读取excel信息:我们在根⽬录创建⼀个名为read.php的⽂件来读取⽂档,创建⼀个test.xlsx的⽂件,⾥⾯写的信息如下:然后在read.php写以下代码:<?phpinclude ‘./Classes/PHPExcel/IOFactory.php';$inputFileName = ‘./test.xls';date_default_timezone_set(‘PRC');// 读取excel⽂件try {$inputFileType = PHPExcel_IOFactory::identify($inputFileName);$objReader = PHPExcel_IOFactory::createReader($inputFileType);$objPHPExcel = $objReader->load($inputFileName);} catch(Exception $e) {die(‘加载⽂件发⽣错误:”‘.pathinfo($inputFileName,PATHINFO_BASENAME).'”: ‘.$e->getMessage()); }// 确定要读取的sheet,什么是sheet,看excel的右下⾓,真的不懂去百度吧$sheet = $objPHPExcel->getSheet(0);$highestRow = $sheet->getHighestRow();$highestColumn = $sheet->getHighestColumn();// 获取⼀⾏的数据for ($row = 1; $row <= $highestRow; $row++){// Read a row of data into an array$rowData = $sheet->rangeToArray(‘A' . $row . ‘:' . $highestColumn . $row, NULL, TRUE, FALSE);//这⾥得到的rowData都是⼀⾏的数据,得到数据后⾃⾏处理,我们这⾥只打出来看看效果var_dump($rowData);echo “<br>”;}得到的数据:PHPexcel读取⽂件PHPExcel DEMO2:利⽤PHPExcel导出信息到excel:<?php/** Error reporting */error_reporting(E_ALL);ini_set('display_errors', TRUE);ini_set('display_startup_errors', TRUE);date_default_timezone_set('PRC');/** 引⼊PHPExcel */require_once dirname(__FILE__) . './Classes/PHPExcel.php';// 创建Excel⽂件对象$objPHPExcel = new PHPExcel();// 设置⽂档信息,这个⽂档信息windows系统可以右键⽂件属性查看$objPHPExcel->getProperties()->setCreator("作者简庆旺")->setLastModifiedBy("最后更改者")->setTitle("⽂档标题")->setSubject("⽂档主题")->setDescription("⽂档的描述信息")->setKeywords("设置⽂档关键词")->setCategory("设置⽂档的分类");//根据excel坐标,添加数据$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', '你好')->setCellValue('B2', '世界')->setCellValue('C1', '你好')->setCellValue('D2', '世界');// 混杂各种符号, 编码为UTF-8$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A4', 'Miscellaneous glyphs')->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç');$objPHPExcel->getActiveSheet()->setCellValue('A8',"你好世界");$objPHPExcel->getActiveSheet()->getRowDimension(8)->setRowHeight(-1);$objPHPExcel->getActiveSheet()->getStyle('A8')->getAlignment()->setWrapText(true);$value = "-ValueA\n-Value B\n-Value C";$objPHPExcel->getActiveSheet()->setCellValue('A10', $value);$objPHPExcel->getActiveSheet()->getRowDimension(10)->setRowHeight(-1);$objPHPExcel->getActiveSheet()->getStyle('A10')->getAlignment()->setWrapText(true); $objPHPExcel->getActiveSheet()->getStyle('A10')->setQuotePrefix(true);// 重命名⼯作sheet$objPHPExcel->getActiveSheet()->setTitle('第⼀个sheet');// 设置第⼀个sheet为⼯作的sheet$objPHPExcel->setActiveSheetIndex(0);// 保存Excel 2007格式⽂件,保存路径为当前路径,名字为export.xlsx$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');$objWriter->save( 'export.xlsx');// 保存Excel 95格式⽂件,,保存路径为当前路径,$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');$objWriter->save('export.xls');好了,执⾏后我们可以得到export.xls和export.xlsx。
phpexcel导⼊excel处理⼤数据(实例讲解)下载完成把那个Classes 这个⽂件夹⾥⾯的⽂件跟⽂件夹拿出来就好了。
直接写到PHPExcel 这个⽂件⾥⾯的。
调⽤很简单。
引⼊phpExcel 这个类传递对应的excel ⽂件的路径就好了现在上传到指定的⽬录,然后加载上传的excel⽂件读取这⾥读取是的时候不转换数组了。
注意:是Sheet可以多个读取,php 上传值要设置⼤,上传超时要设置长。
header('Content-type: text/html; charset=utf-8'); //设置页⾯编码require_once 'phpexcel.class.php'; //引⼊⽂件require_once 'PHPExcel/IOFactory.php'; //引⼊⽂件require_once 'PHPExcel/Reader/Excel2007.php'; //引⼊⽂件$uploadfile = $_FILES['select_file']['tmp_name']; //获取上传⽂件$auid = $_SESSION['auid'];$date = date('Ymd');$rand = rand(1,9999);$_month=str_replace('-','',$date);$file_name = str_pad($auid, 4, 0, STR_PAD_LEFT).$date.str_pad($rand, 4, 0, STR_PAD_LEFT).'.xlsx';$path_file = '../data/upload/file/'.$file_name; //上传⽂件⽬录指定move_uploaded_file($uploadfile, $path_file); //⽂件上传$inputFileType = PHPExcel_IOFactory::identify($path_file);$objReader = PHPExcel_IOFactory::createReader($inputFileType);$objReader->setReadDataOnly(true);//只需要添加这个⽅法实现表格数据格式转换$objPHPExcel = $objReader->load($path_file);$sheet_read_arr = array();$sheet_read_arr["表1"] = array("B","C");$sheet_read_arr["表2"] = array("B","C");$sheet_read_arr["表3"] = array("B","C");$list_aray=array();foreach ($sheet_read_arr as $key => $val){$currentSheet = $objPHPExcel->getSheetByName($key);$row_num = $currentSheet->getHighestRow();for ($i = 6; $i <= $row_num; $i++){$cell_values = array();foreach ($val as $cell_val){$address = $cell_val . $i;// 单元格坐标$cell_values[] = $currentSheet->getCell($address)->getFormattedValue();}$list_aray[]=$cell_values;}}以上这篇phpexcel导⼊excel处理⼤数据(实例讲解)就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
PHPExcel导⼊导出常⽤⽅法总结最近公司后台管理系统需求,要⽤PHP导出excel表格数据,所以特整理了⼀下常⽤的⽅法供⼤家参考:PHPExcel扩展包地址:⼤致的分为⼏个部分:⼀、导出的⽅法及步骤1.引⼊PHPExcel⽂件:require_once("../Classes/PHPExcel.php");2.实例化PHPExcel:$ObjPHPExcel = new PHPExcel();3.获取当前⼯作sheet:$ObjPHPExcel->getACtiveSheet();4.给当前⼯作表设置名称:$ObjPHPExcel->setTitle('sheet表名称');5.添加数据,赋值:$ObjPHPExcel->setCellValue('单元格坐标','值');6.按照指定格式⽣成excel⽂件:$ObjPHPExcel->PHPExcel_IOFactory::createWriter($ObjPHPExcel,'Excal5');7.保存Excel⽂件:$ObjPHPExcel->save('保存路径及⽂件名');8.如果要将⽣成的Excel⽂件输出到浏览器:Excel5需要添加以下代码:header("Content-type:application/vnd.ms-excel");//输出Excel03⽂件header("Content-Disposition:attachment;filename=test.xls');header("Content-Control:max-age = 0");$ObjPHPExcel->save("php://output");Excel7需要添加以下代码:header("Content-type:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");//输出Excel07⽂件header("Content-Disposition:attachment;filename=test.xlsx');//浏览器输出⽂件名称header("Content-Control:max-age = 0");//禁⽌浏览器缓存$ObjPHPExcel->save("php://output");⼆、Excel样式控制1.合并单元格:$ObjPHPExcel->getActiveSheet()->mergeCells('A18:E22');2.拆分单元格:$ObjPHPExcel->getActiveSheet()->unmergeCells('A18:E22');3.设置默认单元格⽔平⽅向居中:$ObjPHPExcel->getDefaultStyle()->getAlignment()->setHorizontal( PHPExcel_Style_Alignment::HORIZONTAL_CENTER);4.设置默认单元格垂直⽅向居中:$ObjPHPExcel->getDefaultStyle()->getAlignment()->setvertical( PHPExcel_Style_Alignment::VERTICAL_CENTER);5.设置默认字体样式:字体类型:$ObjPHPExcel->getDefaultStyle()->getFont()->setName('微软雅⿊');字体⼤⼩:$ObjPHPExcel->getDefaultStyle()->getFont()->setSize(14);6.设置指定字体样式:$ObjPHPExcel->getStyle('A18:E22')->getFont()->setName('微软雅⿊');字体⼤⼩:$ObjPHPExcel->getStyle('A18:E22')->getFont()->setSize(14);7.设置背景颜⾊:填充⽅式(完全填充):$ObjPHPExcel->getStyle('B2')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);填充颜⾊:$objPHPExcel->getStyle('B2')->getFill()->getStartColor()->setARGB('FFFF0000');8.设置边框:$styleArray = array('borders' => array('outline' => array('style' => PHPExcel_Style_Border::BORDER_THICK,'color' => array('argb' => 'FFFF0000'),),),);$objWorksheet->getStyle('B2:G8')->applyFromArray($styleArray);调⽤getStyle()⽅法的,参数都可以通过数组的⽅式传⼊。
spreadsheetphpPhpSpreadsheet的简单使用Spreadsheet是一种电子表格软件,用于处理和分析数据。
而SpreadsheetPHP是一个基于PHP开发的库,提供了操作和生成电子表格的功能。
PhpSpreadsheet是SpreadsheetPHP的一个分支,是一个功能强大的PHP库,可以用来读取、写入和操作多种不同格式的电子表格文件。
``````安装完毕后,在PHP代码中引入库文件:```phprequire 'vendor/autoload.php';```下面是一些常见的使用示例:1.创建新文件:```phpuse PhpOffice\PhpSpreadsheet\Spreadsheet;//创建一个空的电子表格对象$spreadsheet = new Spreadsheet(;//设置活动工作表$spreadsheet->setActiveSheetIndex(0);//设置单元格的值$spreadsheet->getActiveSheet->setCellValue('A1', 'Hello World !')->setCellValue('B1', 'This is a sample spreadsheet.');// 将电子表格保存为.xlsx文件$writer = new\PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);$writer->save('hello_world.xlsx');```上述代码创建了一个新的电子表格文件,并在第一个单元格中设置了“Hello World !”,在第二个单元格中设置了“This is a sample spreadsheet.”,然后将电子表格保存为名为"hello_world.xlsx"的.xlsx文件。
ThinkPHP3.2.3使⽤PHPExcel处理Excel表格把下载的 zip 包解压⾄ ./ThinkPHP/Library/Vendor 下⼀、导⼊ Excel 数据控制器⾃定,这⾥⽤ IndexController.class.php<?phpnamespace Home\Controller;use Think\Controller;class IndexController extends Controller {// 导⼊ Excelpublic function excel() {header('Content-type: text/html; charset=utf-8');vendor('PHPExcel.Classes.PHPExcel');$file = './Data/example.xlsx';$Excel = new \PHPExcel();// 如果excel⽂件后缀名为.xls// vendor("PHPExcel.Classes.PHPExcel.Reader.Excel5");// 如果excel⽂件后缀名为.xlsxvendor("PHPExcel.Classes.PHPExcel.Reader.Excel2007");$PHPReader = new \PHPExcel_Reader_Excel2007();// 载⼊⽂件$Excel = $PHPReader -> load($file);//获取表中的第⼀个⼯作表,如果要获取第⼆个,把0改为1,依次类推$currentSheet = $Excel -> getSheet(0);//获取总列数$allColumn = $currentSheet -> getHighestColumn();//获取总⾏数$allRow = $currentSheet -> getHighestRow();//循环获取表中的数据,$currentRow表⽰当前⾏,从哪⾏开始读取数据,索引值从0开始for($currentRow = 1; $currentRow <= $allRow; $currentRow++) {//从哪列开始,A表⽰第⼀列for($currentColumn = 'A'; $currentColumn <= $allColumn; $currentColumn++) {//数据坐标$address = $currentColumn.$currentRow;//读取到的数据,保存到数组$arr中$arr[$currentRow][$currentColumn] = $currentSheet-> getCell($address)-> getValue();}}echo '<pre>';var_export($arr);}}输出:array (1 =>array ('A' => '分公司名称','B' => '姓名','C' => '⾦额',),2 =>array ('A' => 'A分公司','B' => '赵娟','C' => 1100,),3 =>array ('A' => 'B分公司','B' => '孔坚','C' => 1100,),4 =>array ('A' => 'C分公司','B' => '王华发','C' => 1300,),5 =>array ('A' => 'C分公司','B' => '赵辉','C' => 700,),6 =>array ('A' => 'B分公司','B' => '华发','C' => 1400,),7 =>array ('A' => 'A分公司','B' => '赵德国','C' => 700,),8 =>array ('A' => 'B分公司','B' => '沈芳虹','C' => 500,),9 =>array ('A' => 'C分公司','B' => '周红⽟','C' => 1100,),10 =>array ('B' => '施芬芳','C' => 800,),11 =>array ('A' => 'A分公司','B' => '蒋国建','C' => 1100,),12 =>array ('A' => 'B分公司','B' => '钱毅','C' => 1400,),13 =>array ('A' => 'B分公司','B' => '陈华惠','C' => 1200,),14 =>array ('A' => 'C分公司','B' => '曹⾹','C' => 1400,),15 =>array ('A' => 'A分公司','B' => '郑红妙','C' => 600,),16 =>array ('A' => 'A分公司','B' => '王宏仁','C' => 800,),17 =>array ('A' => 'C分公司','B' => '何丹美','C' => 1300,),)需要导⼊的 Excel ⽂件如下:⼆、导出 Excel// 导出 Excelpublic function export() {vendor('PHPExcel.Classes.PHPExcel');$Excel = new \PHPExcel();$arr = array ( 1 => array ( 'A' => '分公司名称', 'B' => '姓名', 'C' => '⾦额', ), 2 => array ( 'A' => 'A分公司', 'B' => '赵娟', 'C' => 1100, ), 3 => array ( 'A' => 'B分公司', 'B' => '孔坚', 'C' => 1100, ), 4 => array ( 'A' => 'C分公司', 'B' => '王华发', 'C' => 1 // 设置$Excel->getProperties()->setCreator("dee")->setLastModifiedBy("dee")->setTitle("数据EXCEL导出")->setSubject("数据EXCEL导出")->setDescription("数据EXCEL导出")->setKeywords("excel")->setCategory("result file");foreach($arr as $key => $val) { // 注意 key 是从 0 还是 1 开始,此处是 0// $num = $key + 1;$Excel ->setActiveSheetIndex(0)//Excel的第A列,uid是你查出数组的键值,下⾯以此类推->setCellValue('A'.$key, $val['A'])->setCellValue('B'.$key, $val['B'])->setCellValue('C'.$key, $val['C']);}$Excel->getActiveSheet()->setTitle('export');$Excel->setActiveSheetIndex(0);$name='example_export.xlsx';header('Content-Type: application/vnd.ms-excel');header('Content-Disposition: attachment; filename='.$name);header('Cache-Control: max-age=0');$ExcelWriter = \PHPExcel_IOFactory::createWriter($Excel, 'Excel2007');$ExcelWriter->save('php://output');}导出的 example_export.xlsx 如图: 右键 -- 属性:参考:。
phpexcel sheet 克隆格式标题:使用PHPExcel库进行Sheet克隆及格式复制的详细步骤在处理Excel文件时,PHPExcel是一个非常强大的工具。
它提供了一套完整的API,使得开发者能够轻松地读取、写入、操作Excel文件。
本文将详细介绍如何使用PHPExcel库进行Sheet的克隆以及格式的复制。
一、准备工作首先,我们需要在项目中引入PHPExcel库。
你可以通过Composer来安装,命令如下:composer require phpoffice/phpexcel安装完成后,我们就可以开始使用PHPExcel了。
二、加载Excel文件在进行Sheet克隆和格式复制之前,我们需要先加载要操作的Excel文件。
以下是一个简单的示例:phprequire_once 'vendor/autoload.php';use PHPExcel_IOFactory;加载Excel文件filePath = 'path_to_your_excel_file.xlsx';objPHPExcel = PHPExcel_IOFactory::load(filePath);三、Sheet克隆在PHPExcel中,我们可以使用cloneSheet方法来克隆一个Sheet。
以下是一个示例:php获取要克隆的SheetsourceSheet = objPHPExcel->getSheetByName('Sheet1');克隆SheetnewSheetIndex =objPHPExcel->cloneSheet(sourceSheet->getIndex()); newSheet = objPHPExcel->getSheet(newSheetIndex);为新Sheet设置名称newSheet->setTitle('Sheet2');在这个示例中,我们首先获取了要克隆的Sheet(假设名为'Sheet1'),然后使用cloneSheet方法进行克隆,并获取新Sheet的索引。
本文实例讲述了PHPExcel合并与拆分单元格的方法。
分享给大家供大家参考,具体如下:$objPHPExcel;$filepath="c:\temp.xlsx";try {&n bsp; $objReader = PHPExcel_IOFactory::createReader('Excel2007');&n bsp; $objPHPExcel = $objReader->load($filepath);} catch (Excepti on $e) {&n bsp; die();}$colu mn_in dex = "A";〃清空要合并的首行单元格值,用于填充合并后的单元格值$objPHPExcel->getActiveSheet()->setCellValue($colu mn」n dex.''.$beginRow,"); 〃合并单元格,值为”$objPHPExcel->getActiveSheet()->mergeCells($column_i ndex.".$begi nRow.":".$column_i ndex.''.$e ndRow);〃拆分单元格,将清空合并前单元格的值并还原合并前单元格的样式$objPHPExcel->getActiveSheet()->u nm ergeCells($colu mn」n dex.''.$begi nRow.":".$colum n」n dex.''.$e ndRow);希望本文所述对大家PHP程序设计有所帮助。
使⽤PHPExcel解析Excel表格安装类库从GitHub上下载PHPExcel类库地址:解压后将Classes⽂件夹移动到ThinkPHP的extend⽬录,并将其重命名为phpexcel在项⽬中需要的地⽅添加引⽤import('phpexcel.PHPExcel', EXTEND_PATH);代码实现<?phpnamespace app\index\controller;use think\Controller;class Excel extends Controller{// 测试 http://127.0.0.1:8083/index/excel/indexpublic function index(){$path = "G:/student.xlsx";$data = self::readExcel($path);if (empty($data)) {$json = json_encode(['errcode' => '20001','errmsg' => '没有解析到数据','data' => []], JSON_UNESCAPED_UNICODE);} else {$json = json_encode(['errcode' => '10000','errmsg' => '读取数据成功','data' => $data], JSON_UNESCAPED_UNICODE);}return $json;}//PHPExcel解析Excel表格protected function readExcel($filePath){// 引⼊类库import('phpexcel.PHPExcel', EXTEND_PATH);// 实例化对象if (strstr($filePath, '.xlsx')) {// 对应⽂件类型为 .xlsx$PHPReader = new \PHPExcel_Reader_Excel2007(); } elseif (strstr($filePath, '.xls')) {// 对应⽂件类型为 .xls$PHPReader = new \PHPExcel_Reader_Excel5();} else {// ⽂件类型⽆法识别return false;}// 载⼊Excel⽂件$PHPExcel = $PHPReader->load($filePath);// 获得sheet1$sheet = $PHPExcel->getActiveSheet(0);// 当前sheet的最⼤⾏数$highestRow = $sheet->getHighestRow();// 获取Excel数据$arr = $sheet->toArray();// 解析$data = [];$length = count($arr);for ($i = 1; $i < $length; $i++) {// 为什么i从1开始?因为i=0是列标题!$data[$i-1] = ['stuNo' => $arr[$i][0],'name' => $arr[$i][1],'class' => $arr[$i][2]];}// 返回数据return empty($data) ? [] : $data;}}查看运⾏结果Excel中的内容为在浏览器⾥访问,查看结果(此处获取的是json数据)将json数据(通过web前端助⼿插件)格式化之后可以看到已经解析出来的数据补充:Chrome安装[Web前端助⼿]点击下载打开Chrome的扩展程序把下载的.crx插件拖⼊浏览器,即可安装本⽂链接:。
phpexcel 结果公式PHPExcel是一个用于在PHP中操作Excel文件的库。
如果你想要在PHPExcel中使用公式来计算结果,可以通过以下步骤来实现:1. 首先,你需要创建一个PHPExcel对象,并加载你要操作的Excel文件。
2. 然后,你可以选择要在哪个单元格中输入公式,通过PHPExcel的setCellValue方法来设置公式,例如,$objPHPExcel->getActiveSheet()->setCellValue('A1', '=SUM(B1:B10)')。
3. 接下来,你需要调用PHPExcel的calculate方法来计算公式的结果,例如,$objPHPExcel->getActiveSheet()->calculate();4. 最后,你可以通过PHPExcel的getCalculatedValue方法来获取计算后的结果,例如,$result = $objPHPExcel->getActiveSheet()->getCell('A1')->getCalculatedValue()。
需要注意的是,PHPExcel中的公式计算是基于Excel软件的公式引擎来实现的,因此可以支持Excel中常见的公式函数,如SUM、AVERAGE等。
另外,PHPExcel还提供了一些其他的方法来处理公式,比如getCalculatedValue()用于获取计算后的值,setCalculationCacheEnabled()用于启用或禁用公式计算缓存等。
总的来说,使用PHPExcel来处理Excel文件中的公式计算是相当方便和灵活的,可以满足大部分的需求。
希望这些信息能够帮助到你。
PhpSpreadsheet设置单元格常⽤操作汇总PhpSpreadsheet提供了丰富的API接⼝,可以设置诸多单元格以及⽂档属性,包括样式、图⽚、⽇期、函数等等诸多应⽤,总之你想要什么样的Excel表格,PhpSpreadsheet都能做到。
在调试设置时,确保引⼊了正确的⽂件并实例化。
use PhpOffice\PhpSpreadsheet\Spreadsheet;$spreadsheet = new Spreadsheet();$worksheet = $spreadsheet->getActiveSheet();字体第1⾏代码将A7⾄B7两单元格设置为粗体字,Arial字体,10号字;第2⾏代码将B1单元格设置为粗体字。
$spreadsheet->getActiveSheet()->getStyle('A7:B7')->getFont()->setBold(true)->setName('Arial')->setSize(10);;$spreadsheet->getActiveSheet()->getStyle('B1')->getFont()->setBold(true);颜⾊将⽂字颜⾊设置为红⾊。
$spreadsheet->getActiveSheet()->getStyle('A4')->getFont()->getColor()->setARGB(\PhpOffice\PhpSpreadsheet\Style\Color::COLOR_RED);图⽚可以将图⽚加载到Excel中。
$drawing = new \PhpOffice\PhpSpreadsheet\Worksheet\Drawing();$drawing->setName('Logo');$drawing->setDescription('Logo');$drawing->setPath('./images/officelogo.jpg');$drawing->setHeight(36);列宽将A列宽度设置为30(字符)。
thinkPHP+phpexcel实现excel报表输出功能⽰例本⽂实例讲述了thinkPHP+phpexcel实现excel报表输出功能。
分享给⼤家供⼤家参考,具体如下:准备⼯作:1.下载phpexcel1.7.6类包;2.解压⾄TP框架的ThinkPHP\Vendor⽬录下,改类包⽂件夹名为PHPExcel176,⽬录结构如下图;编写代码(以⼀个订单汇总数据为例):1. 创建数据库及表;2. 创建tp项⽬,配置项⽬的数据库连接,这些基本的就不说了;3. 在项⽬的Lib\Action下创建⼀个新的类⽂件ExportStatisticsAction.class.php,然后在 index⽅法中实现excel导出;4. 导出⽅法的步骤:①查询数据②导⼊phpexcel类库③创建excel对象并设置excel对象的属性④设置excel的⾏列样式(字体、⾼宽、颜⾊、边框、合并等)⑤绘制报表表头⑥将查询数据写⼊excel⑦设置excel的sheet的名称⑧设置excel报表打开后初始的sheet⑨设置输出的excel的头参数及⽂件名⑩调⽤创建excel的⽅法⽣成excel⽂件代码如下:<?php/*** Created by lonm.shi.* Date: 2012-02-09* Time: 下午4:54* To change this template use File | Settings | File Templates.*/class ExportStatisticsAction extends Action {public function index(){$model= D("OrdersView");$OrdersData= $model->select(); //查询数据得到$OrdersData⼆维数组vendor("PHPExcel176.PHPExcel");// Create new PHPExcel object$objPHPExcel = new PHPExcel();// Set properties$objPHPExcel->getProperties()->setCreator("ctos")->setLastModifiedBy("ctos")->setTitle("Office 2007 XLSX Test Document")->setSubject("Office 2007 XLSX Test Document")->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")->setKeywords("office 2007 openxml php")->setCategory("Test result file");//set width$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(8);$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(10);$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(25);$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(12);$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(50);$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(10);$objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(12);$objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(12);$objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(12);$objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(30);//设置⾏⾼度$objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(22);$objPHPExcel->getActiveSheet()->getRowDimension('2')->setRowHeight(20);//set font size bold$objPHPExcel->getActiveSheet()->getDefaultStyle()->getFont()->setSize(10);$objPHPExcel->getActiveSheet()->getStyle('A2:J2')->getFont()->setBold(true);$objPHPExcel->getActiveSheet()->getStyle('A2:J2')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);$objPHPExcel->getActiveSheet()->getStyle('A2:J2')->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN); //设置⽔平居中$objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);$objPHPExcel->getActiveSheet()->getStyle('A')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);$objPHPExcel->getActiveSheet()->getStyle('B')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);$objPHPExcel->getActiveSheet()->getStyle('D')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);$objPHPExcel->getActiveSheet()->getStyle('F')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);$objPHPExcel->getActiveSheet()->getStyle('G')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);$objPHPExcel->getActiveSheet()->getStyle('H')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);$objPHPExcel->getActiveSheet()->getStyle('I')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);//合并cell$objPHPExcel->getActiveSheet()->mergeCells('A1:J1');// set table header content$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', '订单数据汇总时间:'.date('Y-m-d H:i:s'))->setCellValue('A2', '订单ID')->setCellValue('B2', '下单⼈')->setCellValue('C2', '客户名称')->setCellValue('D2', '下单时间')->setCellValue('E2', '需求机型')->setCellValue('F2', '需求数量')->setCellValue('G2', '需求交期')->setCellValue('H2', '确认BOM料号')->setCellValue('I2', 'PMC确认交期')->setCellValue('J2', 'PMC交货备注');// Miscellaneous glyphs, UTF-8for($i=0;$i<count($OrdersData)-1;$i++){$objPHPExcel->getActiveSheet(0)->setCellValue('A'.($i+3), $OrdersData[$i]['id']);$objPHPExcel->getActiveSheet(0)->setCellValue('B'.($i+3), $OrdersData[$i]['realname']);$objPHPExcel->getActiveSheet(0)->setCellValue('C'.($i+3), $OrdersData[$i]['customer_name']);$objPHPExcel->getActiveSheet(0)->setCellValue('D'.($i+3), toDate($OrdersData[$i]['create_time'])); //这⾥调⽤了common.php的时间戳转换函数$objPHPExcel->getActiveSheet(0)->setCellValue('E'.($i+3), $OrdersData[$i]['require_product']);$objPHPExcel->getActiveSheet(0)->setCellValue('F'.($i+3), $OrdersData[$i]['require_count']);$objPHPExcel->getActiveSheet(0)->setCellValue('G'.($i+3), $OrdersData[$i]['require_time']);$objPHPExcel->getActiveSheet(0)->setCellValue('H'.($i+3), $OrdersData[$i]['product_bom_encoding']);$objPHPExcel->getActiveSheet(0)->setCellValue('I'.($i+3), $OrdersData[$i]['delivery_time']);$objPHPExcel->getActiveSheet(0)->setCellValue('J'.($i+3), $OrdersData[$i]['delivery_memo']);$objPHPExcel->getActiveSheet()->getStyle('A'.($i+3).':J'.($i+3))->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);$objPHPExcel->getActiveSheet()->getStyle('A'.($i+3).':J'.($i+3))->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN); $objPHPExcel->getActiveSheet()->getRowDimension($i+3)->setRowHeight(16);}// sheet命名$objPHPExcel->getActiveSheet()->setTitle('订单汇总表');// Set active sheet index to the first sheet, so Excel opens this as the first sheet$objPHPExcel->setActiveSheetIndex(0);// excel头参数header('Content-Type: application/vnd.ms-excel');header('Content-Disposition: attachment;filename="订单汇总表('.date('Ymd-His').').xls"'); //⽇期为⽂件名后缀header('Cache-Control: max-age=0');$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); //excel5为xls格式,excel2007为xlsx格式$objWriter->save('php://output');}}导出报表更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》及《》。
PHPExcel中文帮助手册∙vendor("PHPExcel.PHPExcel"); //如果这里提示类不存在,肯定是你文件夹名字不对。
∙$objPHPExcel = new \PHPExcel(); //这里要注意‘\’ 要有这个。
因为版本是3.1.2了。
∙$objWriter = new \PHPExcel_Writer_Excel5($objPHPExcel);//设置保存版本格式。
//接下来就是写数据到表格里面去/* 合并单元格*/$objPHPExcel->getActiveSheet()->mergeCells('A1:H1');$objPHPExcel->getActiveSheet()->mergeCells('A2:B2');$objPHPExcel->getActiveSheet()->mergeCells('C2:E2');$list =array(‘你从数据库查出来的的数据’)foreach ($list as $key => $value) {$i=$key+1; //表格是从1开始的$objPHPExcel->getActiveSheet()->setCellValue('A'.$i, $value['ID']);//设置A1单元格的内容$objPHPExcel->getActiveSheet()->setCellValue('B'.$i, $value['id']);//设置B1单元格的内容//以此类推,可以设置C D E F G}/*---------------------------------设置样式---------------------------------------- *//* 设置字体样式*/$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setName('微软雅黑');/* 设置字体大小*/$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setSize(20);/* 是否加粗*/$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true);//垂直居中$objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setVertical(PHPExcel_Style_ Alignment::VERTICAL_CENTER);//水平居中$objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Styl e_Alignment::HORIZONTAL_CENTER);//填充背景样式$objPHPExcel->getActiveSheet()->getStyle('A4')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_ SOLID);//填充背景颜色$objPHPExcel->getActiveSheet()->getStyle('A4')->getFill()->getStartColor()->setARGB('FFD3D3 D3');//边框样式$objPHPExcel->getActiveSheet()->getStyle('A4')->getBorders()->getTop()->setBorderStyle(PHP Excel_Style_Border::BORDER_THIN);$objPHPExcel->getActiveSheet()->getStyle('A4')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);$objPHPExcel->getActiveSheet()->getStyle('A4')->getBorders()->getLeft()->setBorderStyle(PHP Excel_Style_Border::BORDER_THIN);$objPHPExcel->getActiveSheet()->getStyle('A4')->getBorders()->getRight()->setBorderStyle(PH PExcel_Style_Border::BORDER_THIN);//边框颜色$objPHPExcel->getActiveSheet()->getStyle('A4')->getBorders()->getTop()->getColor()->setAR GB('FF000000');$objPHPExcel->getActiveSheet()->getStyle('A4')->getBorders()->getBottom()->getColor()->set ARGB('FF000000');$objPHPExcel->getActiveSheet()->getStyle('A4')->getBorders()->getLeft()->getColor()->setARG B('FF000000');$objPHPExcel->getActiveSheet()->getStyle('A4')->getBorders()->getRight()->getColor()->setAR GB('FF000000');//边框宽度$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(12); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(12); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(20);//自动调整边框宽度$objPHPExcel->getActiveSheet()->getColumnDimension('A')-> setAutoSize (true); $objPHPExcel->getActiveSheet()->getColumnDimension('B')-> setAutoSize (true); $objPHPExcel->getActiveSheet()->getColumnDimension('C')-> setAutoSize (true);//接下来是下载这个表格了,在浏览器输出就好了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= 文件名称.xls ');header("Content-Transfer-Encoding:binary");$objWriter->save('文件名称.xls');$objWriter->save('php://output');。
phpexcel_chart_dataseriesvalues 参数-概述说明以及解释1.引言1.1 概述在本文中,将会介绍关于PHPExcel中的ChartDataSeriesValues参数。
PHPExcel是一个用于读写Excel文件的PHP库,可以方便地生成、读取和修改Excel文件。
其中,ChartDataSeriesValues参数是用于创建图表数据的一个重要参数,可以指定图表数据的来源和格式。
本文将会首先介绍PHPExcel库的基本概念和用途,然后重点讨论ChartDataSeriesValues参数的作用和用法。
通过学习本文,读者将能够了解如何使用ChartDataSeriesValues参数来创建各种类型的图表数据,从而更加灵活和高效地处理Excel文件中的图表数据。
1.2 文章结构本文分为引言、正文和结论三个部分。
- 引言部分将对文章的背景和意义进行介绍,概述文章的主要内容和目的。
- 正文部分将详细介绍PHPExcel的基础知识,以及其中的ChartDataSeriesValues参数的含义和用法。
同时,将介绍如何使用ChartDataSeriesValues参数来创建图表数据,让读者能够更加深入地理解这一参数的作用和重要性。
- 结论部分将总结全文的主要内容和收获,并对ChartDataSeriesValues参数的应用推广和未来发展进行展望。
1.3 目的本文的主要目的是探讨在使用PHPExcel库中创建图表时如何有效地使用ChartDataSeriesValues参数。
通过深入了解ChartDataSeriesValues参数的作用和用法,读者可以更加熟练地操作PHPExcel库来生成各种类型的图表,并且能够根据自身需求灵活地调整图表的数据源。
在实际应用中,正确使用ChartDataSeriesValues参数可以帮助用户更好地控制图表数据的来源及格式,从而生成符合预期的图表效果。
欢迎登录清源教育官网www.tsingyuan.cn 查看更多视频教程 PHP操作Excel – PHPExcel 基本用法详解
1.header [php] header("Content-Type:application/vnd.ms-excel"); header("Content-Disposition:attachment;filename=sample.xls"); header("Pragma:no-cache"); header("Expires:0"); 2.PHPExcel http://www.codeplex.com/PHPExcel http://www.phpexcel.net 开发包Tests目录有详细使用实例 支持中文,注意文件编码 文件保存为utf-8
写excel [php] //Include class require_once('Classes/PHPExcel.php'); require_once('Classes/PHPExcel/Writer/Excel2007.php'); $objPHPExcel = new PHPExcel();
//Set properties 设置文件属性 $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."); $objPHPExcel->getProperties()->setKeywords("office 2007 openxml php"); $objPHPExcel->getProperties()->setCategory("Test result file");
//Add some data 添加数据 $objPHPExcel->setActiveSheetIndex(0); 欢迎登录清源教育官网www.tsingyuan.cn 查看更多视频教程 $objPHPExcel->getActiveSheet()->setCellValue('A1', 'Hello');//可以指定位置 $objPHPExcel->getActiveSheet()->setCellValue('A2', true); $objPHPExcel->getActiveSheet()->setCellValue('A3', false); $objPHPExcel->getActiveSheet()->setCellValue('B2', 'world!'); $objPHPExcel->getActiveSheet()->setCellValue('B3', 2); $objPHPExcel->getActiveSheet()->setCellValue('C1', 'Hello'); $objPHPExcel->getActiveSheet()->setCellValue('D2', 'world!');
//循环 for($i = 1;$i<200;$i++) { $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, $i); $objPHPExcel->getActiveSheet()->setCellValue('B' . $i, 'Test value'); }
//日期格式化 $objPHPExcel->getActiveSheet()->setCellValue('D1', time()); $objPHPExcel->getActiveSheet()->getStyle('D1')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDDSLASH);
//Add comment 添加注释 $objPHPExcel->getActiveSheet()->getComment('E11')->setAuthor('PHPExcel'); $objCommentRichText = $objPHPExcel->getActiveSheet()->getComment('E11')->getText()->createTextRun('PHPExcel:'); $objCommentRichText->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getComment('E11')->getText()->createTextRun("\r\n"); $objPHPExcel->getActiveSheet()->getComment('E11')->getText()->createTextRun('Total amount on the current invoice, excluding VAT.');
//Add rich-text string 添加文字 可设置样式 $objRichText = new PHPExcel_RichText( $objPHPExcel->getActiveSheet()->getCell('A18') ); $objRichText->createText('This invoice is '); $objPayable = $objRichText->createTextRun('payable within thirty days after the end of the 欢迎登录清源教育官网www.tsingyuan.cn 查看更多视频教程 month'); $objPayable->getFont()->setBold(true); $objPayable->getFont()->setItalic(true); $objPayable->getFont()->setColor( new PHPExcel_Style_Color( PHPExcel_Style_Color::COLOR_DARKGREEN ) ); $objRichText->createText(', unless specified otherwise on the invoice.');
//Merge cells 合并分离单元格 $objPHPExcel->getActiveSheet()->mergeCells('A18:E22'); $objPHPExcel->getActiveSheet()->unmergeCells('A18:E22');
//Protect cells 保护单元格 $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 数字格式化 $objPHPExcel->getActiveSheet()->getStyle('E4')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE); $objPHPExcel->getActiveSheet()->duplicateStyle( $objPHPExcel->getActiveSheet()->getStyle('E4'), 'E5:E13' );
//Set column widths 设置列宽度 $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true); $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(12);
//Set fonts 设置字体 $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);