目錄
PHP链式操作输出excel(csv),链式csv
首頁 後端開發 php教程 PHP链式操作输出excel(csv),链式csv_PHP教程

PHP链式操作输出excel(csv),链式csv_PHP教程

Jul 13, 2016 am 10:12 AM
csv

PHP链式操作输出excel(csv),链式csv

工作中经常会遇到产品运营让导出一些简单的比较规范的数据,这时候要是有一个简单的方法可以用就简单多了。下面是我的一个输出简单的excel(csv)的方法类,用到了链式操作。说到链式操作,在jquery中可能经常用到,是不是也感觉到链式操作用起来很爽,我们也在这个类中实现下链式操作。

其实链式操作很简单的,就是在前一个类方法最后返回一个该类的对象($this),提供给下一个方法调用。

<?<span>php
</span><span>class</span><span> Array2csv{
    </span><span>/*</span><span>
     *@var string $ext 扩展名 
     </span><span>*/</span>
    <span>private</span> <span>$ext</span> = 'csv'<span>;

    </span><span>/*</span><span>* 
     * @desc构造方法
     * @param string $filename 要输出的文件名
     * @param string $ext 扩展名
     </span><span>*/</span>
    <span>public</span> <span>function</span> __construct(<span>$filename</span>,<span>$ext</span>=<span>null</span><span>){
        </span><span>ob_start</span><span>();
        </span><span>header</span>("Content-type: text/html;charset=utf-8"<span>);
        </span><span>header</span>("Content-type: application/x-csv"<span>);
        </span><span>if</span>(PHP_SAPI == 'cli') <span>echo</span> "CLI模式下不能导出csv文件\r"<span>;
        </span><span>$this</span>->ext = <span>$ext</span> === <span>null</span> ? <span>$this</span>->ext : <span>$ext</span><span>;
        </span><span>header</span>("Content-Disposition: attachment;filename=".<span>$filename</span>.".".<span>$this</span>-><span>ext);
        </span><span>ob_flush</span><span>();
        </span><span>return</span> <span>$this</span><span>;
    }

    </span><span>/*</span><span>* 
     * @desc 打印excel标题
     * @param array $title 要输出的标题行
     * @param object Array2csv 对象本身
     </span><span>*/</span>    
    <span>public</span> <span>function</span> title(<span>$title</span><span>){
        </span><span>$title</span> = <span>implode</span>(",", <span>$title</span><span>);
        </span><span>echo</span> <span>$title</span>."\n"<span>;
        </span><span>return</span> <span>$this</span><span>;
    }

    </span><span>/*</span><span>* 
     * @desc 打印一行excel内容
     * @param array $body 要输出的内容
     * @param object Array2csv 对象本身
     </span><span>*/</span>    
    <span>public</span> <span>function</span> body(<span>$body</span><span>){
        </span><span>if</span>(!<span>is_array</span>(<span>$body</span>) || <span>empty</span>(<span>$body</span><span>)) {
            </span><span>return</span> <span>false</span><span>;
        }
        </span><span>$body</span> = <span>implode</span>(",", <span>$body</span><span>);
        </span><span>echo</span> <span>$body</span>."\n"<span>;
        </span><span>return</span> <span>$this</span><span>;
    }

    </span><span>/*</span><span>* 
     * @desc 打印多行excel内容
     * @param array $bodyArr 要输出的多行内容
     * @param object Array2csv 对象本身
     </span><span>*/</span>    
    <span>public</span> <span>function</span> multiBody(<span>$bodyArr</span><span>){
        </span><span>if</span>(!<span>is_array</span>(<span>$bodyArr</span>) || <span>empty</span>(<span>$bodyArr</span>)) <span>return</span> <span>false</span><span>;

        </span><span>foreach</span> (<span>$bodyArr</span> <span>as</span> <span>$key</span> => <span>$value</span><span>) {
            </span><span>if</span>(<span>is_array</span>(<span>$value</span><span>)){
                </span><span>$value</span> = <span>implode</span>(",", <span>$value</span><span>);
                </span><span>echo</span> <span>$value</span>."\n"<span>;
            }
        }
        </span><span>return</span> <span>$this</span><span>;
    }
}


</span><span>$test</span> = <span>new</span> Array2csv('test'<span>);
</span><span>$arr</span> = <span>array</span><span>(
    </span><span>array</span>('luluyrt@163.com','奔跑的Man1','奔跑的userman'),
    <span>array</span>('luluyrt@163.com','奔跑的Man2','奔跑的userman'),
    <span>array</span>('luluyrt@163.com','奔跑的Man3','奔跑的userman'),
    <span>array</span>('luluyrt@163.com','奔跑的Man4','奔跑的userman'),
    <span>array</span>('luluyrt@163.com','奔跑的Man5','奔跑的userman'),
    <span>array</span>('luluyrt@163.com','奔跑的Man6','奔跑的userman'<span>)
);
</span><span>$test</span>->title(<span>array</span>('测试','呵呵','哈哈'))->body(<span>array</span>('100,sadkl','sdsas','sdvsvdd分'))->multiBody(<span>$arr</span>);
登入後複製

输出的csv如下图所示:

PHP链式操作输出excel(csv),链式csv_PHP教程$link = mysqli_connect($host, $user, $passwd, $db); mysqli_query($link, "set names utf8");

 

进行编码转换方可正常显示,下面是我的数据库信息和编码前后效果:

PHP链式操作输出excel(csv),链式csv_PHP教程数据库信息

PHP链式操作输出excel(csv),链式csv_PHP教程设置数据库编码前后的对比

send Me~

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/924354.htmlTechArticlePHP链式操作输出excel(csv),链式csv 工作中经常会遇到产品运营让导出一些简单的比较规范的数据,这时候要是有一个简单的方法可以用就...
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Laravel開發:如何使用Laravel Excel匯入和匯出CSV檔案? Laravel開發:如何使用Laravel Excel匯入和匯出CSV檔案? Jun 14, 2023 pm 12:06 PM

Laravel是業界較出色的PHP框架之一,其強大的功能和易於使用的API使得其深受開發者的喜愛。在實際開發中,我們經常需要進行資料的匯入和匯出工作,而CSV作為一種廣泛應用的資料格式,也成為了常用的匯入和匯出格式之一。本文就將介紹如何使用LaravelExcel擴充功能來進行CSV檔案的匯入和匯出操作。一、安裝LaravelExcel首先,我們需要

PHP將行格式化為 CSV 並寫入檔案指針 PHP將行格式化為 CSV 並寫入檔案指針 Mar 22, 2024 am 09:00 AM

這篇文章將為大家詳細講解有關PHP將行格式化為CSV並寫入文件指針,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章後可以有所收穫。將行格式化為CSV並寫入檔案指標步驟1:開啟檔案指標$file=fopen(&quot;path/to/file.csv&quot;,&quot;w&quot;);步驟2:將行轉換為CSV字串使用fputcsv( )函數將行轉換為CSV字串。此函數接受以下參數:$file:檔案指標$fields:作為陣列的CSV欄位$delimiter:欄位分隔符號(可選)$enclosure:欄位引號(

php中json字串如何轉csv格式 php中json字串如何轉csv格式 Jun 02, 2023 am 11:13 AM

php中json字串轉csv格式的方法:1、建立一個php範例檔;2、將JSON字串轉換為PHP陣列或物件;3、建立一個檔案句柄並開啟一個CSV檔案寫入;4、在CSV文件中編寫標題行和資料行;5、將資料行寫入CSV文件,並在欄位之間使用逗號分隔符,關閉文件句柄並完成轉換即可。

Python中的XML資料轉換為CSV格式 Python中的XML資料轉換為CSV格式 Aug 11, 2023 pm 07:41 PM

Python中的XML資料轉換為CSV格式XML(ExtensibleMarkupLanguage)是一種可擴充標記語言,常用於資料的儲存與傳輸。而CSV(CommaSeparatedValues)則是一種以逗號分隔的文字檔案格式,常用於資料的匯入和匯出。在處理資料時,有時需要將XML資料轉換為CSV格式以便於分析和處理。 Python作為一種功能強大

使用 OpenCSV 在 Java 中進行 CSV 檔案的讀寫操作詳解 使用 OpenCSV 在 Java 中進行 CSV 檔案的讀寫操作詳解 Dec 20, 2023 am 09:36 AM

Java是一種廣泛使用的程式語言,開發者常常需要處理各種資料格式。 CSV(Comma-SeparatedValues,逗號分隔值)是一種常見的資料格式,廣泛應用於資料交換與儲存。在Java中,我們可以使用OpenCSV函式庫來讀寫CSV檔。 OpenCSV是一個簡單易用的開源函式庫,提供了方便的API來處理CSV資料。本文將介紹如何在

php 導入csv亂碼問題怎麼辦 php 導入csv亂碼問題怎麼辦 Nov 21, 2022 am 09:32 AM

php導入csv亂碼問題的解決方法:1、建構一個解析函數「function tb_str_getcsv($string, $delimiter=',', $enclosure='"') {...}”;2、讀取檔案到變量;3、透過「substr($s,2)」去掉BOM頭即可。

csv怎麼轉vcf csv怎麼轉vcf Dec 15, 2023 am 10:44 AM

csv透過開啟CSV檔案、格式化CSV檔案、匯出CSV檔案、調整VCF檔案格式和儲存VCF檔案的步驟轉vcf。詳細介紹:1、開啟CSV文件,可使用Microsoft Excel、Google Sheets或任何其他電子表格程式開啟CSV文件;2、格式化CSV文件,確保CSV文件的列標題清晰明確;3、匯出CSV文件等等。

如何使用Java將CSV檔案匯入JTable進行展示 如何使用Java將CSV檔案匯入JTable進行展示 Apr 21, 2023 pm 11:34 PM

概述主要知識點a.SwingNode類別:把Javaswing元件封裝成一個JavaFX的Node,使得JavaSwing可以和JavaFX嵌套在一起使用,JavaSwing賊醜,但操作簡單,JavaFX的表格元件(TableView等)有點複雜,所以選擇嵌套JavaSwing來使用,醜就醜吧b.javacsv-2.0.jar:用於透過文件地址讀取csv文件,並可以進行一系列操作.儘管2008年之後就不再更新,但操作個csv文件也夠用了。 c.FileChoose類別:JavaFX的一個檔案選擇器,可

See all articles