search
HomeBackend DevelopmentPHP TutorialHow to export excel using PHPExcel
How to export excel using PHPExcelMay 15, 2018 pm 04:11 PM
excelphpphpexcel

This article mainly introduces how to export excel with PHPExcel. Interested friends can refer to it. I hope it will be helpful to everyone.

//Set the includepath of the PHPExcel class library

set_include_path('.'.PATH_SEPARATOR.'D:\workspace\biznaligy_eh\dev_src\includes\PHPExcel'.PATH_SEPARATOR.get_include_path());
require_once'PHPExcel.php';
require_once'PHPExcel/Writer/Excel5.php';//用于其他低版本xls
require_once'PHPExcel/Writer/Excel2007.php';//用于excel-2007格式

//Create a processing object instance

$objExcel=newPHPExcel();


//Create a file format writing object instance ,uncomment

$objWriter=newPHPExcel_Writer_Excel5($objExcel);//用于其他版本格式
//or
//$objWriter=newPHPExcel_Writer_Excel2007($objExcel);//用于2007格式
//$objWriter->setOffice2003Compatibility(true);

//Set the basic properties of the document

$objProps=$objExcel->getProperties();
$objProps->setCreator("ZealLi");
$objProps->setLastModifiedBy("ZealLi");
$objProps->setTitle("OfficeXLSTestDocument");
$objProps->setSubject("OfficeXLSTestDocument,Demo");
$objProps->setDescription("Testdocument,generatedbyPHPExcel.");
$objProps->setKeywords("officeexcelPHPExcel");
$objProps->setCategory("Test");

//Set the current sheet index for subsequent content operations.
//Generally, explicit calls are only needed when using multiple sheets.
//By default, PHPExcel will automatically create the first sheet and set SheetIndex=0

$objExcel->setActiveSheetIndex(0);
$objActSheet=$objExcel->getActiveSheet();

//Set the name of the current active sheet

$objActSheet->setTitle('测试Sheet');


//Set the cell content and PHPExcel automatically determines the cell content type based on the incoming content

$objActSheet->setCellValue('A1','字符串内容');//字符串内容
$objActSheet->setCellValue('A2',26);//数值
$objActSheet->setCellValue('A3',true);//布尔值
$objActSheet->setCellValue('A4','=SUM(A2:A2)');//公式


//Explicitly specify the content type

$objActSheet->setCellValueExplicit('A5','8757584',PHPExcel_Cell_DataType::TYPE_STRING);

//Merge cells

$objActSheet->mergeCells('B1:C22');


//Separate cells

$objActSheet->unmergeCells('B1:C22');


//Set width

$objActSheet->getColumnDimension('B')->setAutoSize(true); 
$objActSheet->getColumnDimension('A')->setWidth(30);


//Set the number format of the cell content.
//If PHPExcel_Writer_Excel5 is used to generate content,
//It should be noted here that in the const variable definition of the PHPExcel_Style_NumberFormat class
//In various custom formatting methods, other types can be normal Used, but when setFormatCode
// is FORMAT_NUMBER, the actual effect is that the format is not set to "0". Need
//Modify the getXf($style) method in the source code of the PHPExcel_Writer_Excel5_Format class,
//Add a ## in front of if($this->_BIFF_version==0x0500){(near line 363) #//Line of code:
//if($ifmt==='0')$ifmt=1;

//Set the format to PHPExcel_Style_NumberFormat::FORMAT_NUMBER to avoid certain large numbers
//It is displayed using scientific notation. With the setAutoSize method below, the content of each line can be displayed
//all according to the original content.

<br/>

//Set font

$objFontA5=$objStyleA5->getFont();
$objFontA5->setName(&#39;CourierNew&#39;);
$objFontA5->setSize(10);
$objFontA5->setBold(true);
$objFontA5->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);
$objFontA5->getColor()->setARGB(&#39;FFFF0000&#39;);
$objFontA5->getColor()->setARGB(PHPExcel_Style_Color::COLOR_WHITE);
//$objFontA5->getFont()->setColor(PHPExcel_Style_Color::COLOR_RED);

//Set alignment


$objAlignA5=$objStyleA5->getAlignment();
$objAlignA5->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
$objAlignA5->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
$objAlignA5->setWrapText(true);//自动换行,前提是单元格内的值超列宽,或者在值内写入个\n

//Set border


$objBorderA5=$objStyleA5->getBorders();
$objBorderA5->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objBorderA5->getTop()->getColor()->setARGB(&#39;FFFF0000&#39;);//边框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);

//Set the CELL fill color


$objFillA5=$objStyleA5->getFill();
$objFillA5->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
$objFillA5->getStartColor()->setARGB(&#39;FFEEEEEE&#39;);

//Copy the style information from the specified cell.

$objActSheet->duplicateStyle($objStyleA5,&#39;B1:C22&#39;);

/ /Add picture

$objDrawing = newPHPExcel_Worksheet_Drawing();
$objDrawing->setName(&#39;ZealImg&#39;);
$objDrawing->setDescription(&#39;ImageinsertedbyZeal&#39;);
$objDrawing->setPath(&#39;./zeali.net.logo.gif&#39;);
$objDrawing->setHeight(36);
$objDrawing->setCoordinates(&#39;C23&#39;);
$objDrawing->setOffsetX(10);
$objDrawing->setRotation(15);
$objDrawing->getShadow()->setVisible(true);
$objDrawing->getShadow()->setDirection(36);
$objDrawing->setWorksheet($objActSheet);

//Add a new worksheet

$objExcel->createSheet();
$objExcel->getSheet(1)->setTitle(&#39;测试2&#39;);

//Save and set password

$objPHPExcel->getActiveSheet()->getProtection()->setPassword(&#39;PHPExcel&#39;);

//Protect cells


$objExcel->getSheet(1)->getProtection()->setSheet(true);
$objExcel->getSheet(1)->protectCells(&#39;A1:C22&#39;,&#39;PHPExcel&#39;);

//Show grid lines:

$objPHPExcel->getActiveSheet()->setShowGridlines(true);

//Show hidden columns


$objPHPExcel->getActiveSheet()->getColumnDimension(&#39;C&#39;)->setVisible(true);
$objPHPExcel->getActiveSheet()->getColumnDimension(&#39;D&#39;)->setVisible(false);

//Show hidden rows


$objPHPExcel->getActiveSheet()->getRowDimension(&#39;10&#39;)->setVisible(false);

//Default column width


$objPHPExcel->getActiveSheet()->getDefaultColumnDimension()->setWidth(12);

//Default row width


$objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(15);

//worksheet Default style settings (different from the default need to be set separately)


$objPHPExcel->getActiveSheet()->getDefaultStyle()->getFont()->setName(&#39;Arial&#39;);
$objPHPExcel->getActiveSheet()->getDefaultStyle()->getFont()->setSize(8);
$alignment = $objPHPExcel->getActiveSheet()->getDefaultStyle()->getAlignment();
$alignment->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$alignment->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);

//Output content


$outputFileName="output.xls";

//Go to the file through the file path and then use Ajax to refresh the page


////$objWriter->save($outputFileName);

//Go to the browser


header("Content-Type:application/force-download");
header("Content-Type:application/octet-stream");
header("Content-Type:application/download");
header(&#39;Content-Disposition:inline;filename="&#39;.$outputFileName.&#39;"&#39;);
header("Content-Transfer-Encoding:binary");
header("Last-Modified:".gmdate("D,dMYH:i:s")."GMT");
header("Cache-Control:must-revalidate,post-check=0,pre-check=0");
header("Pragma:no-cache");
$objWriter->save(&#39;php://output&#39;);
 
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, &#39;PDF&#39;);
$objWriter->save(&#39;a.pdf&#39;)
 
public function getCellByColumnAndRow($pColumn = 0, $pRow = 0) {
    return $this->getCell(PHPExcel_Cell::stringFromColumnIndex($pColumn) . $pRow);
}
print_r(PHPExcel_Cell::columnIndexFromString(&#39;D&#39;));exit; //echo 4
echo PHPExcel_Cell::stringFromColumnIndex(4) //  echo E
for($c=PHPExcel_Cell::columnIndexFromString(&#39;A&#39;);$c<PHPExcel_Cell::columnIndexFromString(&#39;J&#39;);$c++){
    echo PHPExcel_Cell::stringFromColumnIndex($c);
}

//phpexcel is not frozen by default, and the following are frozen columns. If you set two, you will determine all


$sheet->freezePane(&#39;A1&#39;);
$sheet->freezePane(&#39;B1&#39;);

Freeze rows

$sheet->freezePane(&#39;D1&#39;);
$sheet->freezePane(&#39;D2&#39;);

Cannot define A, b, c again, otherwise the column freezing will be replaced


public function freezePaneByColumnAndRow($pColumn = 0, $pRow = 0){
    $this->freezePane(PHPExcel_Cell::stringFromColumnIndex($pColumn) . $pRow);
}
public function unfreezePane() {
   $this->freezePane(&#39;&#39;);
 }
$worksheet->setInputEncoding("UTF-8");
//$freeze = $sheet->getFreezePane();


Use phpexcel to batch format cells



##Java code

$style_obj = new PHPExcel_Style();  
$style_array = array(  
    &#39;borders&#39; => array(  
        &#39;top&#39; => array(&#39;style&#39; => PHPExcel_Style_Border::BORDER_THIN),  
        &#39;left&#39; => array(&#39;style&#39; => PHPExcel_Style_Border::BORDER_THIN),  
        &#39;bottom&#39; => array(&#39;style&#39; => PHPExcel_Style_Border::BORDER_THIN),  
        &#39;right&#39; => array(&#39;style&#39; => PHPExcel_Style_Border::BORDER_THIN)  
    ),  
    &#39;alignment&#39; => array(  
        &#39;horizontal&#39; => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,  
        &#39;vertical&#39;   => PHPExcel_Style_Alignment::VERTICAL_CENTER,  
        &#39;wrap&#39;       => true  
    )  
);  
$style_obj->applyFromArray($style_array);  
$sheet->setSharedStyle($style_obj, "A1:O35");
How to export excel using PHPExcelphpexcel big data export, data append (190,000 rows, divided into 20 sheets, 10,000 rows is a sheet, the first time to 1 sheet data, other data is appended to excel in 19 times to cover the corresponding sheet )

先用 PhpExcel 建立reader,再load文件,这样打开已经存在的文档,然后再建立writer,将reader中的数据都复制过来,再用 PhpExcel 进行数据修改,再以load的文件名覆盖保存。


Java代码  How to export excel using PHPExcel

<?php  
require_once &#39;PHPExcel/IOFactory.php&#39;;  
$reader = PHPExcel_IOFactory::createReader(&#39;Excel5&#39;); //读取旧版 excel 档案  
$PHPExcel = $reader->load("y.xls"); // 档案名称  
$sheet = $PHPExcel->getSheet(0); // 读取第一个工作表(编号从 0 开始)  
$highestRow = $sheet->getHighestRow(); // 取得总列数  
for ($row = 1; $row <= $highestRow; $row++) {  
    for ($column = 1; $column <= 6; $column++) {  
        $val = $sheet->getCellByColumnAndRow($column, $row)->getValue();  
    }  
}  
?>

 相关推荐:

Yii2框架中PHPExcel导出Excel文件方法

Yii2框架中实现PHPExcel导出Excel文件的方法分享

phpExcel导出excel 

The above is the detailed content of How to export excel using PHPExcel. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
一文教会你Excel折叠表格分类汇总功能一文教会你Excel折叠表格分类汇总功能May 12, 2022 am 11:58 AM

本篇文章给大家带来了关于excel的相关知识,其中主要介绍了关于折叠表格的相关问题,就是分类汇总的功能,这样查看数据会非常的方便,下面一起来看一下,希望对大家有帮助。

实用Excel技巧分享:计算年数差、月数差、周数差实用Excel技巧分享:计算年数差、月数差、周数差Apr 22, 2022 am 09:56 AM

在之前的文章《实用Excel技巧分享:利用 数据透视表 来汇总业绩》中,我们学习了下Excel数据透视表,了解了利用数据透视表来汇总业绩的方法。而今天我们来聊聊怎么计算时间差(年数差、月数差、周数差),希望对大家有所帮助!

实例总结Excel中AGGREGATE函数的八个用法实例总结Excel中AGGREGATE函数的八个用法May 17, 2022 am 11:37 AM

本篇文章给大家带来了关于excel的相关知识,其中主要介绍了关于AGGREGATE函数的相关内容,该函数用法与SUBTOTAL函数类似,但在功能上比SUBTOTAL函数更加强大,下面一起来看一下,希望对大家有帮助。

Word与Excel联动:表格借用Word进行分栏打印!Word与Excel联动:表格借用Word进行分栏打印!May 07, 2022 am 10:28 AM

在之前的文章《实用Word技巧分享:聊聊你没用过的“行号”功能》中,我们了解了Word中你肯定没用过的"行号”功能。今天继续实用Word技巧分享,看看Excel表格怎么借用Word进行分栏打印,快来收藏使用吧!

实例详解利用Excel制作倒计时牌实例详解利用Excel制作倒计时牌May 16, 2022 am 11:53 AM

本篇文章给大家带来了关于excel的相关知识,其中主要介绍了关于zenmm制作倒计时牌的相关内容,使用Excel中的日期函数结合按指定时间刷新的VBA代码,即可制作出倒计时牌,下面一起来看一下,希望对大家有帮助。

实用Excel技巧分享:合并单元格后实现筛选功能实用Excel技巧分享:合并单元格后实现筛选功能May 11, 2022 am 10:22 AM

在之前的文章《实用Excel技巧分享:原来“定位功能”这么有用!》中,我们了解了定位功能的妙用。而今天我们聊聊合并后的单元格如何实现筛选功能,分享一种复制粘贴和方法解决这个问题,另外还会给大家分享一种合并单元格的不错的替代方式。

Excel怎么查找总和为某个值的组合Excel怎么查找总和为某个值的组合May 18, 2022 am 11:25 AM

本篇文章给大家带来了关于excel的相关知识,其中主要介绍了关于如何使用函数寻找总和为某个值的组合的问题,下面一起来看一下,希望对大家有帮助。

图文详解Excel中XLOOKUP函数典型用法整理图文详解Excel中XLOOKUP函数典型用法整理Apr 21, 2022 am 11:46 AM

本篇文章给大家带来了关于Excel的相关知识,其中主要介绍了关于XLOOKUP函数的相关知识,包括了常规查询、逆向查询、返回多列、自动除错以及近似查找等内容,下面一起来看一下,希望对大家有帮助。

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.