推測: PHP を使用してデータを Excel テーブルにエクスポートする方法 (画像とテキストの説明)

炎欲天舞
リリース: 2023-03-14 15:26:02
オリジナル
2615 人が閲覧しました

1. はじめに

最も単純で乱暴な方法でデータを Excel ファイルに書き込むにはどうすればよいでしょうか?

MS WordとExcelの両方の文書はhtmlテキスト形式をサポートしているため、この原則に基づいてhtmlテキスト形式を使用してデータを出力できます。

htmlでは、データを対応するhtmlテーブルに希望の順序で入れるだけです。

PHP を使用してデータを取得および整理し、対応する HTML テキストを構築し、最終的にバイト ストリーム出力を通じてユーザーのローカル エリアにダウンロードします。

2. コード

これは、コメントが含まれる非常に単純なプログラムです。

ExportExcel.class.php ファイル


<?php
class ExportExcel{
    /**
    * @desc   将数据导出到Excel中
    * @param  $data array 设置表格数据 
    * @param  $titlename string 设置head 
    * @param  $title string 设置表头 
    * @param  $filename 设置默认文件名
    * @return 将字符串输出,即输出字节流,下载Excel文件
    */ 
    public function excelData($data,$titlename,$title,$filename){ 
        #xmlns即是xml的命名空间
        $str = "<html xmlns:o=\"urn:schemas-microsoft-com:office:office\"\r\nxmlns:x=\"urn:schemas-microsoft-com:office:excel\"\r\nxmlns=\"http://www.w3.org/TR/REC-html40\">\r\n<head>\r\n<meta http-equiv=Content-Type content=\"text/html; charset=utf-8\">\r\n</head>\r\n<body>"; 
        #以下构建一个html类型格式的表格
        $str .= $title; 
        $str .="<table border=1><head>".$titlename."</head>"; 
        foreach ($data  as $key=> $rt ) 
        { 
            $str .= "<tr>"; 
            foreach ( $rt as $k => $v ) 
            { 
                $str .= "<td>{$v}</td>"; 
            } 
            $str .= "</tr>\n"; 
        } 
        $str .= "</table></body></html>"; 
        header( "Content-Type: application/vnd.ms-excel; name=&#39;excel&#39;" );   #类型
        header( "Content-type: application/octet-stream" );     #告诉浏览器响应的对象的类型(字节流、浏览器默认使用下载方式处理)
        header( "Content-Disposition: attachment; filename=".$filename );   #不打开此文件,刺激浏览器弹出下载窗口、下载文件默认命名
        header( "Cache-Control: must-revalidate, post-check=0, pre-check=0" ); 
        header( "Pragma: no-cache" );   #保证不被缓存或者说保证获取的是最新的数据
        header( "Expires: 0" ); 
        exit( $str ); 
    }


}


?>
ログイン後にコピー


<?php
$obj=new ExportExcel();

$data = array(
    array(&#39;a11&#39;,&#39;a22&#39;,&#39;a33&#39;),
    array(&#39;b11&#39;,&#39;b22&#39;,&#39;b33&#39;),
    array(&#39;c11&#39;,&#39;c22&#39;,&#39;c33&#39;),
    array(&#39;d11&#39;,&#39;d22&#39;,&#39;d33&#39;),
    array(&#39;e11&#39;,&#39;e22&#39;,&#39;e33&#39;),
    array(&#39;f11&#39;,&#39;f22&#39;,&#39;f33&#39;),
    );      
$excelHead = "这个是Excel表格标题"; 
$title = "我的Excel表";   #文件命名
$headtitle= "<tr><th  colspan=&#39;3&#39; >{$excelHead}</th></tr>"; 
$titlename = "<tr> 
               <th style=&#39;width:70px;&#39;>表格1</th> 
               <th style=&#39;width:70px;&#39;>表格2</th> 
               <th style=&#39;width:70px;&#39;>表格3</th> 
            </tr>"; 
$filename = $title.".xls"; 
$obj->excelData($data,$titlename,$headtitle,$filename); 


?>
ログイン後にコピー

3. テスト

クリックしてアクセスします:

Excel ファイルをダウンロードします

入力後、Excel 「ファイル形式はサフィックス名と一致しません」というプロンプトが表示されます。これは、エクスポートした Excel ファイルが Excel のように見えるだけ (実際には HTML ファイル) であり、形式が Excel ファイルではないことを間接的に示しています。

クリックして中身を確認してください。Excel のように見えます(笑)。 Jiangzi だけです

サフィックスを html に変更し、次のように入力して表示します:

ほら、これは実際には html ファイルですが、Excel はこの形式をサポートしています。

4.参考

「PHPでExcelをエクスポート」

(上記は私の意見の一部です。不備や間違いがあればご指摘ください)

以上が推測: PHP を使用してデータを Excel テーブルにエクスポートする方法 (画像とテキストの説明)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート