Ich glaube, dass viele Freunde die Funktion zum Exportieren von Daten nach Excel nutzen werden. Wie kann man also PHP zum Exportieren von Excel verwenden? Neben Klassenbibliotheken wie PHPExcel ist auch native Programmierung möglich. In diesem Artikel wird nativer Code zum Implementieren des Excel-Exports verwendet.
1. Vorwort
Manchmal ist es notwendig, Datenbanktabellenressourcen nach Excel zu exportieren, um einige Berichtsdaten zu erstellen.
Es gibt mehrere Möglichkeiten, Excel in PHP zu exportieren:
Verwenden Sie die Klassenbibliothek von PHP zum Exportieren, z. B. PHPExcel
Verwenden Sie die native Methode von PHP zum Exportieren
In diesem Artikel wird erläutert, wie Sie Excel mit nativen Methoden exportieren
2. Schlüsselfunktionen
2.1, ob-Ausgabe
ob_start(); ob_get_contents ob_end_clean fopen fwrite fclose iconv
2.2. Header-Ausgabe
header iconv
3. Verwenden Sie die ob-Funktion zum Exportieren aus Excel
Die ob-Funktion ist hauptsächlich in drei Schritte unterteilt:
进行缓存的设置 读取缓存 写入文件
Unten gepostet Der Export Excel-Klasse
<?php class Excel { // ob函数缓存的开始 public static function start () { ob_start(); } // 获取缓存内容 public static function save ($path) { $data = ob_get_contents(); ob_end_clean(); self::writeToExcel($path, $data); } //写到文件 private static function writeToExcel ($fn, $data) { $dir = self::setDir(); $fp = fopen($dir . '/'. $fn, 'wb'); fwrite($fp, $data); fclose($fp); } //excel默认是GKB,所有要转码 public static function setChar ($value, $inchar = 'utf-8', $outchar ='gbk') { return iconv($inchar, $outchar, $value);//转化编码 } //创建目录,linux系统一般要写到文件,目录需要w权限 public static function setDir($dirName = 'excel') { if(!is_dir($dirName)) { mkdir($dirName); } return $dirName; } }
4. Vollständiger Seitencode
<?php header('Content-Type: text/html; charset=GBK'); //excel需要GBK编码,为了防止转码产生的乱码,需要设置成GBK require 'coon.php'; require 'excel.class.php'; $sql = 'select * from user'; $res = $link->query($sql); //判断是否有发送get数据 if(isset($_GET['id'])){ $name = empty($_GET['id']) ? 'a' . rand(1000,9999) : $_GET['id'] ; $filename = $name . '.xls'; //设置缓存的开始 Excel::start(); } ?> <?php //页面输出一般是不需要转码的,excel输出才需要转码 echo '<table width=500 height=25 border=0 align=center cellpadding=0 cellspacing=0>'; echo '<thead><tr>'; //设置thead输出 echo '<td style="border-bottom:1px solid black;padding:10px;text-align:center;">' . Excel::setChar('编号') . '</td>'; echo '<td style="border-bottom:1px solid black;padding:10px;text-align:center;">' . Excel::setChar('用户名') . '</td>'; echo '<td style="border-bottom:1px solid black;padding:10px;text-align:center;">' . Excel::setChar('密码') . '</td>'; echo '</thead></tr>'; ?> <?php echo '<tbody>'; //设置tbody输出 while($re = $res->fetch(PDO::FETCH_ASSOC)){ echo '<tr>'; echo '<td style="border-bottom:1px solid black;padding:10px;text-align:center;">' . Excel::setChar($re['id']) . '</td>'; echo '<td style="border-bottom:1px solid black;padding:10px;text-align:center;">' . Excel::setChar($re['user']) . '</td>'; echo '<td style="border-bottom:1px solid black;padding:10px;text-align:center;">' . Excel::setChar($re['pwd']) . '</td>'; echo '</tr>'; } echo '</tbody></table>'; ?> <?php if(isset($_GET['id'])){ //保存文件 Excel::save($filename); } if(isset($_GET['id'])){ echo '<a href="obexcel.php">' .Excel::setChar('完成') .'</a>'; }else{ echo '<a href="obexcel.php?id">' . Excel::setChar('导出') .'</a>'; } ?>
5. Verwenden Sie den Header, um Excel herunterzuladen.
Die Verwendung der OB-Funktion zum Exportieren von Excel kann nur auf dem Server gespeichert und nicht heruntergeladen werden (dies ist unter besonderer Verarbeitung weiterhin möglich). Im Folgenden wird beschrieben, wie Sie die Header()-Funktion zum Exportieren und Herunterladen von Excel verwenden
Die beiden wichtigsten Header()-Funktionen
header("Content-type:application/vnd.ms-excel");//指定文件类型 header("Content-Disposition:filename=a.xls" ); //指定下载文件名
Andere Methoden sind die Dasselbe wie der Export der ob-Funktion (vollständiger Code unten)
query($sql); ?> '; echo ''; //设置thead输出 echo ' '; ?> '; //设置tbody输出 while($re = $res->fetch(PDO::FETCH_ASSOC)){ echo '' . Excel::setChar('编号') . ' '; echo '' . Excel::setChar('用户名') . ' '; echo '' . Excel::setChar('密码') . ' '; echo ''; echo ' '; } echo ''; ?>' . Excel::setChar($re['id']) . ' '; echo '' . Excel::setChar($re['user']) . ' '; echo '' . Excel::setChar($re['pwd']) . ' '; echo '
6. Fazit
Hier Wir stellen den Export und Download von Excel nur kurz vor. Eine besteht darin, die Funktion ob () zu verwenden, und die andere darin, die Funktion header () zu verwenden. Die beiden Methoden sind ähnlich, es sollte jedoch beachtet werden, dass Excel eine GBK-Codierung erfordert , und die iconv-Funktion muss für die Transkodierung verwendet werden, um sicherzustellen, dass keine verstümmelten Zeichen angezeigt werden.
In diesem Artikel wird es nur kurz vorgestellt. Fortgeschrittenere Methoden müssen Sie selbst erforschen.
Verwandte Empfehlungen:
So verwenden Sie PHPExcel, um Tabellen stapelweise hochzuladen
[Kurs] Video-Tutorial zur PHP-Excel-Steuerung
So implementieren Sie die Rangfunktion in Excel in PHP
Das obige ist der detaillierte Inhalt vonNative Implementierungsmethode zum Exportieren und Herunterladen von Excel mit PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!