So exportieren Sie Excel mit PHPExcel

墨辰丷
Freigeben: 2023-03-25 20:36:02
Original
2651 Leute haben es durchsucht

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());
Nach dem Login kopieren
require_once'PHPExcel.php';
require_once'PHPExcel/Writer/Excel5.php';//用于其他低版本xls
require_once'PHPExcel/Writer/Excel2007.php';//用于excel-2007格式
Nach dem Login kopieren

//Erstellen Sie eine Verarbeitungsobjektinstanz<br/>

$objExcel=newPHPExcel();
Nach dem Login kopieren

<br/>//Erstellen Sie ein Dateiformat zum Schreiben Objektinstanz, Kommentar entfernen<br/>

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

//Grundlegende Eigenschaften des Dokuments festlegen<br/>

$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");
Nach dem Login kopieren

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

$objExcel->setActiveSheetIndex(0);
$objActSheet=$objExcel->getActiveSheet();
Nach dem Login kopieren

//Legen Sie den Namen des aktuell aktiven Blattes fest <br/>

$objActSheet->setTitle(&#39;测试Sheet&#39;);
Nach dem Login kopieren

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

$objActSheet->setCellValue(&#39;A1&#39;,&#39;字符串内容&#39;);//字符串内容
$objActSheet->setCellValue(&#39;A2&#39;,26);//数值
$objActSheet->setCellValue(&#39;A3&#39;,true);//布尔值
$objActSheet->setCellValue(&#39;A4&#39;,&#39;=SUM(A2:A2)&#39;);//公式
Nach dem Login kopieren

<br/>//Geben Sie den Inhaltstyp explizit an<br/>

$objActSheet->setCellValueExplicit(&#39;A5&#39;,&#39;8757584&#39;,PHPExcel_Cell_DataType::TYPE_STRING);
Nach dem Login kopieren

//Zellen zusammenführen<br/>

$objActSheet->mergeCells(&#39;B1:C22&#39;);
Nach dem Login kopieren

<br/>//Zellen trennen<br/>

$objActSheet->unmergeCells(&#39;B1:C22&#39;);
Nach dem Login kopieren

<br/>//Breite festlegen<br/>

$objActSheet->getColumnDimension(&#39;B&#39;)->setAutoSize(true); 
$objActSheet->getColumnDimension(&#39;A&#39;)->setWidth(30);
Nach dem Login kopieren

<br/>//Legen Sie das Zahlenformat des Zelleninhalts fest. <br/>//Wenn PHPExcel_Writer_Excel5 zum Generieren von Inhalten verwendet wird, <br/>//Hier ist zu beachten, dass in der const-Variablendefinition der PHPExcel_Style_NumberFormat-Klasse <br/>//in verschiedenen benutzerdefinierten Formatierungsmethoden andere Typen normal verwendet werden können , aber wenn setFormatCode<br/>// FORMAT_NUMBER ist, ist der eigentliche Effekt, dass das Format nicht auf „0“ gesetzt ist. Muss <br/>//die getXf($style)-Methode im Quellcode der Klasse PHPExcel_Writer_Excel5_Format ändern, <br/>//ein <🎜 vor if($this->_BIFF_version==0x0500) hinzufügen{( near line 363) >//Codezeile:<br/>//if($ifmt==='0')$ifmt=1;<br/><br/>//Setzen Sie das Format auf PHPExcel_Style_NumberFormat::FORMAT_NUMBER, um dies zu vermeiden Bestimmte große Zahlen<br/>//Wird in wissenschaftlicher Notation angezeigt. Mit der folgenden setAutoSize-Methode kann der Inhalt jeder Zeile <br/>// entsprechend dem ursprünglichen Inhalt angezeigt werden. <br/><br/>

<br/>
Nach dem Login kopieren

//Schriftart festlegen<br/><br/>

$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);
Nach dem Login kopieren

//Ausrichtung festlegen

<br/>

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

//Rahmen festlegen

<br/>

$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);
Nach dem Login kopieren

//ZELLEN-Füllfarbe festlegen

<br/>

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

//Stilinformationen aus der angegebenen Zelle kopieren.<br/><br/>

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

/ /Hinzufügen Bild<br/><br/>

$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);
Nach dem Login kopieren

//Neues Arbeitsblatt hinzufügen<br/><br/>

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

//Speichern und Passwort festlegen<br/><br/>

$objPHPExcel->getActiveSheet()->getProtection()->setPassword(&#39;PHPExcel&#39;);
Nach dem Login kopieren

/ /Zellen schützen

<br/>

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

//Gitterlinien anzeigen:<br/><br/>

$objPHPExcel->getActiveSheet()->setShowGridlines(true);
Nach dem Login kopieren

//Ausgeblendete Spalten anzeigen

<br/>

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

//Anzeigen versteckte Zeilen

<br/>

$objPHPExcel->getActiveSheet()->getRowDimension(&#39;10&#39;)->setVisible(false);
Nach dem Login kopieren

//Standardspaltenbreite

<br/>

$objPHPExcel->getActiveSheet()->getDefaultColumnDimension()->setWidth(12);
Nach dem Login kopieren

//Standardzeilenbreite

<br/>

$objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(15);
Nach dem Login kopieren

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

<br/>

$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);
Nach dem Login kopieren

//Ausgabeinhalt

<br/>

$outputFileName="output.xls";
Nach dem Login kopieren

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

<br/>

////$objWriter->save($outputFileName);
Nach dem Login kopieren

//Gehe zum Browser

<br/>

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);
}
Nach dem Login kopieren

//phpexcel ist standardmäßig nicht eingefroren, und die folgenden sind eingefrorene Spalten. Die Definition von zwei bedeutet, dass alle

<br/>

$sheet->freezePane(&#39;A1&#39;);
$sheet->freezePane(&#39;B1&#39;);
Nach dem Login kopieren

Zeilen eingefroren sind<br/><br/>

$sheet->freezePane(&#39;D1&#39;);
$sheet->freezePane(&#39;D2&#39;);
Nach dem Login kopieren

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

<br/>

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();
Nach dem Login kopieren

<br/>

PHPExcel verwenden, um Zellen stapelweise zu formatieren

<br/>

<br/>

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");
Nach dem Login kopieren

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的文件名覆盖保存。

<br/>

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();  
    }  
}  
?>
Nach dem Login kopieren

 相关推荐:

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage