Heim > Backend-Entwicklung > PHP-Tutorial > Native Implementierungsmethode zum Exportieren und Herunterladen von Excel mit PHP

Native Implementierungsmethode zum Exportieren und Herunterladen von Excel mit PHP

*文
Freigeben: 2023-03-18 09:16:02
Original
3820 Leute haben es durchsucht

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

2.2. Header-Ausgabe

header
iconv
Nach dem Login kopieren

3. Verwenden Sie die ob-Funktion zum Exportieren aus Excel

Die ob-Funktion ist hauptsächlich in drei Schritte unterteilt:

进行缓存的设置
读取缓存
写入文件
Nach dem Login kopieren

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 . &#39;/&#39;. $fn, &#39;wb&#39;);
        fwrite($fp, $data);
        fclose($fp);
    }
    //excel默认是GKB,所有要转码
    public static function setChar ($value, $inchar = &#39;utf-8&#39;, $outchar =&#39;gbk&#39;)
    {
        return  iconv($inchar, $outchar, $value);//转化编码
    }
    //创建目录,linux系统一般要写到文件,目录需要w权限
    public static function setDir($dirName = &#39;excel&#39;)
    {
        if(!is_dir($dirName)) {
            mkdir($dirName);
        }
        return $dirName;
    }
}
Nach dem Login kopieren


4. Vollständiger Seitencode


<?php
    header(&#39;Content-Type: text/html; charset=GBK&#39;); //excel需要GBK编码,为了防止转码产生的乱码,需要设置成GBK
    require &#39;coon.php&#39;;
    require &#39;excel.class.php&#39;;
    $sql = &#39;select * from user&#39;;
    $res = $link->query($sql);
    //判断是否有发送get数据
    if(isset($_GET[&#39;id&#39;])){
        $name = empty($_GET[&#39;id&#39;]) ? &#39;a&#39; . rand(1000,9999) : $_GET[&#39;id&#39;] ;
        $filename = $name . &#39;.xls&#39;;
        //设置缓存的开始
        Excel::start();
    }
?>
<?php
    //页面输出一般是不需要转码的,excel输出才需要转码
    echo &#39;<table width=500 height=25 border=0 align=center cellpadding=0 cellspacing=0>&#39;;
    echo &#39;<thead><tr>&#39;;
    //设置thead输出
    echo &#39;<td style="border-bottom:1px solid black;padding:10px;text-align:center;">&#39; . Excel::setChar(&#39;编号&#39;) . &#39;</td>&#39;;
    echo &#39;<td style="border-bottom:1px solid black;padding:10px;text-align:center;">&#39; . Excel::setChar(&#39;用户名&#39;) . &#39;</td>&#39;;
    echo &#39;<td style="border-bottom:1px solid black;padding:10px;text-align:center;">&#39; . Excel::setChar(&#39;密码&#39;) . &#39;</td>&#39;;
    echo &#39;</thead></tr>&#39;;
?>
<?php
    echo &#39;<tbody>&#39;;
    //设置tbody输出
    while($re = $res->fetch(PDO::FETCH_ASSOC)){
        echo &#39;<tr>&#39;;
        echo &#39;<td style="border-bottom:1px solid black;padding:10px;text-align:center;">&#39; . Excel::setChar($re[&#39;id&#39;]) . &#39;</td>&#39;;
        echo &#39;<td style="border-bottom:1px solid black;padding:10px;text-align:center;">&#39; . Excel::setChar($re[&#39;user&#39;]) . &#39;</td>&#39;;
        echo &#39;<td style="border-bottom:1px solid black;padding:10px;text-align:center;">&#39; . Excel::setChar($re[&#39;pwd&#39;]) . &#39;</td>&#39;;
        echo &#39;</tr>&#39;;
    }
    echo &#39;</tbody></table>&#39;;
?>
<?php
if(isset($_GET[&#39;id&#39;])){
    //保存文件
    Excel::save($filename);
}
if(isset($_GET[&#39;id&#39;])){
    echo &#39;<a href="obexcel.php">&#39; .Excel::setChar(&#39;完成&#39;) .&#39;</a>&#39;;
}else{
    echo &#39;<a href="obexcel.php?id">&#39; . Excel::setChar(&#39;导出&#39;) .&#39;</a>&#39;;
    
}
?>
Nach dem Login kopieren


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" );  //指定下载文件名
Nach dem Login kopieren

Andere Methoden sind die Dasselbe wie der Export der ob-Funktion (vollständiger Code unten)


query($sql);
?>

';
    echo '';
    //设置thead输出
    echo '' . Excel::setChar('编号') . '';
    echo '' . Excel::setChar('用户名') . '';
    echo '' . Excel::setChar('密码') . '';
    echo '';
?>

';
    //设置tbody输出
    while($re = $res->fetch(PDO::FETCH_ASSOC)){
        echo '';
        echo '' . Excel::setChar($re['id']) . '';
        echo '' . Excel::setChar($re['user']) . '';
        echo '' . Excel::setChar($re['pwd']) . '';
        echo '';
    }
    echo '';
?>
Nach dem Login kopieren


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!

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