Heim >Backend-Entwicklung >PHP-Tutorial >So exportieren Sie Excel mit PHPExcel

So exportieren Sie Excel mit PHPExcel

墨辰丷
墨辰丷Original
2018-05-15 16:11:552677Durchsuche

Dieser Artikel stellt hauptsächlich vor, wie man Excel mit PHPExcel exportiert. Interessierte Freunde können darauf verweisen. Ich hoffe, dass er für alle hilfreich ist.

//Legen Sie den Include-Pfad der PHPExcel-Klassenbibliothek fest

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格式

//Erstellen Sie eine Verarbeitungsobjektinstanz

$objExcel=newPHPExcel();


//Erstellen Sie ein Dateiformat zum Schreiben Objektinstanz, Kommentar entfernen

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

//Grundlegende Eigenschaften des Dokuments festlegen

$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");

//Aktuellen Blattindex für nachfolgende Inhaltsvorgänge festlegen.
//Im Allgemeinen sind Anzeigeaufrufe nur erforderlich, wenn mehrere Blätter verwendet werden.
//Standardmäßig erstellt PHPExcel automatisch das erste Blatt mit SheetIndex=0

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

//Legen Sie den Namen des aktuell aktiven Blattes fest

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


//Legen Sie den Zellinhalt fest und PHPExcel bestimmt automatisch den Zellinhaltstyp basierend auf dem eingehenden Inhalt

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


//Geben Sie den Inhaltstyp explizit an

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

//Zellen zusammenführen

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


//Zellen trennen

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


//Breite festlegen

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


//Legen Sie das Zahlenformat des Zelleninhalts fest.
//Wenn PHPExcel_Writer_Excel5 zum Generieren von Inhalten verwendet wird,
//Hier ist zu beachten, dass in der const-Variablendefinition der PHPExcel_Style_NumberFormat-Klasse
//in verschiedenen benutzerdefinierten Formatierungsmethoden andere Typen normal verwendet werden können , aber wenn setFormatCode
// FORMAT_NUMBER ist, ist der eigentliche Effekt, dass das Format nicht auf „0“ gesetzt ist. Muss
//die getXf($style)-Methode im Quellcode der Klasse PHPExcel_Writer_Excel5_Format ändern,
//ein _BIFF_version==0x0500) hinzufügen{( near line 363) >//Codezeile:
//if($ifmt==='0')$ifmt=1;

//Setzen Sie das Format auf PHPExcel_Style_NumberFormat::FORMAT_NUMBER, um dies zu vermeiden Bestimmte große Zahlen
//Wird in wissenschaftlicher Notation angezeigt. Mit der folgenden setAutoSize-Methode kann der Inhalt jeder Zeile
// entsprechend dem ursprünglichen Inhalt angezeigt werden.

<br/>

//Schriftart festlegen

$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);

//Ausrichtung festlegen


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

//Rahmen festlegen


$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);

//ZELLEN-Füllfarbe festlegen


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

//Stilinformationen aus der angegebenen Zelle kopieren.

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

/ /Hinzufügen Bild

$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);

//Neues Arbeitsblatt hinzufügen

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

//Speichern und Passwort festlegen

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

/ /Zellen schützen


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

//Gitterlinien anzeigen:

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

//Ausgeblendete Spalten anzeigen


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

//Anzeigen versteckte Zeilen


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

//Standardspaltenbreite


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

//Standardzeilenbreite


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

//Arbeitsblatt Standardstileinstellungen (verschieden (Die Standardeinstellung muss separat festgelegt werden.)


$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);

//Ausgabeinhalt


$outputFileName="output.xls";

//Gehen Sie über den Dateipfad zur Datei und aktualisieren Sie sie dann mit Ajax Seite


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

//Gehe zum 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 ist standardmäßig nicht eingefroren, und die folgenden sind eingefrorene Spalten. Die Definition von zwei bedeutet, dass alle


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

Zeilen eingefroren sind

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

A, b, c können nicht erneut definiert werden, da sonst das Einfrieren der Spalte ersetzt wird


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();


PHPExcel verwenden, um Zellen stapelweise zu formatieren



Java-Code

So exportieren Sie Excel mit PHPExcel

$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");

phpexcel-Big-Data-Export, Daten anhängen (190.000 Zeilen, aufgeteilt in 20 Blätter, 10.000 Zeilen sind ein Blatt, beim ersten Mal werden 1 Blatt Daten angehängt, andere Daten werden 19 Mal an Excel angehängt, um das entsprechende Blatt abzudecken)

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


Java代码  So exportieren Sie Excel mit 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 

Das obige ist der detaillierte Inhalt vonSo exportieren Sie Excel mit PHPExcel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Variablen in PHP-SitzungenNächster Artikel:Variablen in PHP-Sitzungen