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如下图所示:
$link = mysqli_connect($host, $user, $passwd, $db); mysqli_query($link, "set names utf8");
进行编码转换方可正常显示,下面是我的数据库信息和编码前后效果:
数据库信息
设置数据库编码前后的对比
send Me~

Laravel是业界比较出色的PHP框架之一,其强大的功能和易于使用的API使得其深受开发者的喜爱。在实际开发中,我们经常需要进行数据的导入和导出工作,而CSV作为一种广泛应用的数据格式,也成为了常用的导入和导出格式之一。本文就将介绍如何使用LaravelExcel扩展来进行CSV文件的导入和导出操作。一、安装LaravelExcel首先,我们需

php中json字符串转csv格式的方法:1、创建一个php示例文件;2、将JSON字符串转换为PHP数组或对象;3、创建一个文件句柄并打开一个CSV文件进行写入;4、在CSV文件中编写标题行和数据行;5、将数据行写入CSV文件,并在字段之间使用逗号分隔符,关闭文件句柄并完成转换即可。

这篇文章将为大家详细讲解有关PHP将行格式化为CSV并写入文件指针,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。将行格式化为CSV并写入文件指针步骤1:打开文件指针$file=fopen("path/to/file.csv","w");步骤2:将行转换为CSV字符串使用fputcsv()函数将行转换为CSV字符串。该函数接受以下参数:$file:文件指针$fields:作为数组的CSV字段$delimiter:字段分隔符(可选)$enclosure:字段引号(

Python中的XML数据转换为CSV格式XML(ExtensibleMarkupLanguage)是一种可扩展标记语言,常用于数据的存储和传输。而CSV(CommaSeparatedValues)则是一种以逗号分隔的文本文件格式,常用于数据的导入和导出。在处理数据时,有时需要将XML数据转换为CSV格式以便于分析和处理。Python作为一种功能强大

Java是一种广泛使用的编程语言,开发者们常常需要处理各种数据格式。CSV(Comma-SeparatedValues,逗号分隔值)是一种常见的数据格式,广泛应用于数据交换和存储。在Java中,我们可以使用OpenCSV库来读写CSV文件。OpenCSV是一个简单易用的开源库,提供了方便的API来处理CSV数据。本文将介绍如何在

php导入csv乱码问题的解决办法:1、构造一个解析函数“function tb_str_getcsv($string, $delimiter=',', $enclosure='"') {...}”;2、读取文件到变量;3、通过“substr($s,2)”去掉BOM头即可。

概述主要知识点a.SwingNode类:把Javaswing组件封装成一个JavaFX的Node,使得JavaSwing可以和JavaFX嵌套在一起使用,JavaSwing贼丑,但操作简单,JavaFX的表格组件(TableView等)有点复杂,所以选择嵌套JavaSwing来使用,丑就丑吧b.javacsv-2.0.jar:用于通过文件地址读取csv文件,并可以进行一系列操作.尽管2008年之后就不再更新,但操作个csv文件也够用了。c.FileChoose类:JavaFX的一个文件选择器,可

csv通过打开CSV文件、格式化CSV文件、导出CSV文件、调整VCF文件格式和保存VCF文件的步骤转vcf。详细介绍:1、打开CSV文件,可以使用Microsoft Excel、Google Sheets或任何其他电子表格程序打开CSV文件;2、格式化CSV文件,确保CSV文件的列标题清晰明确;3、导出CSV文件等等。


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Dreamweaver CS6
Visual web development tools

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

VSCode Windows 64-bit Download
A free and powerful IDE editor launched by Microsoft

Dreamweaver Mac version
Visual web development tools
