PHP处理CSV表格文件的常用操作方法总结

要做在线Excel表格编辑功能,Excel的xls文件格式的解析就是个问题,毕竟这是微软Office的私有专利格式.
所以要做的话还是用通用的csv(Comma Separated Value,逗号分隔值)格式吧.
各种办公软件都能识别csv表格,其实就是以特定分隔符(比如逗号)分隔单元格的表格.
拿PHP来说,fgetcsv读入csv表格,返回一个数组,
然后foreach输出成HTML的<table>,这步操作几行代码就能实现,非常简单.
工作量主要还在于浏览器前端,建议你用jQuery进行DOM和AJAX操作,
要实现phpMyAdmin那样细粒度双击单元格编辑,然后AJAX提交也不难,
或者整个表格写好后一次性$("form").serialize();然后AJAX提交也可以.

CSV表格的几条规则:
1.每一行的单元格内容之间用逗号分隔.
2.如果单元格的内容本身有逗号,这个单元格的内容将会用引号包含.
3.如果单元格的内容本身有引号:
(1)引号不在首或尾,这个单元格内容不会被引号包含.
(2)引号在首或尾,这个单元格内容会被引号包含,并且原来首尾的引号会被转义.

读写CSV

<?php header('Content-Type: text/plain; charset=utf-8'); //导出CSV表格:数组转CSV $arr = array ( array('ab', 'cd'), array('"a,b"', '"c,d"'), ); $fp = fopen('file.csv', 'w'); foreach ($arr as $row) { //将一行格式化为CSV并写入文件指针 fputcsv($fp, $row); } fclose($fp); unset($arr); //导入CSV表格:CSV转数组 $fp = fopen('file.csv', 'r'); while ( ($row = fgetcsv($fp)) !== FALSE ) { //从文件指针中读入一行并解析CSV $arr[] = $row; } fclose($fp); var_export($arr);

另存为一个独立文件
download.php:

<?php $list = array ( 'aaa,bbb,ccc,dddd', '123,456,789', '"aaa","bbb"' ); session_start(); $_SESSION['outputArray']=$list; ?> <a href="test.php" target="_blank">下载csv文件</a>

test.php: <?php session_start(); $outputArray=$_SESSION['outputArray']; header('Content-Type: application/csv'); header('Content-Disposition: attachment;filename="sales.csv"'); $output=fopen('php://output','w') or die("can not open"); foreach ($outputArray as $line) { fputcsv($output, split(',', $line)); } fclose($output) or die("can not close"); ?>

自动保存csv文件到指定地点

<?php $list = array ( 'aaa,bbb,ccc,dddd', '123,456,789', '"aaa","bbb"' ); $fp = fopen('file.csv', 'w'); foreach ($list as $line) { fputcsv($fp, split(',', $line)); } fclose($fp); ?>

时间: 2024-11-05 16:29:50

PHP处理CSV表格文件的常用操作方法总结的相关文章

PHP处理CSV表格文件的常用操作方法总结_php实例

要做在线Excel表格编辑功能,Excel的xls文件格式的解析就是个问题,毕竟这是微软Office的私有专利格式. 所以要做的话还是用通用的csv(Comma Separated Value,逗号分隔值)格式吧. 各种办公软件都能识别csv表格,其实就是以特定分隔符(比如逗号)分隔单元格的表格. 拿PHP来说,fgetcsv读入csv表格,返回一个数组, 然后foreach输出成HTML的<table>,这步操作几行代码就能实现,非常简单. 工作量主要还在于浏览器前端,建议你用jQuery进

PHP 简易输出CSV表格文件的方法详解_php技巧

复制代码 代码如下: $ret = '';$arrs = array(array(1,'test1'),             array(2,'test2'),             array(3,'test3'),             array(4,'test4'),             array(5,'test5'),             array(6,'test6'),             array(7,'test7')            );forea

Excel中怎么制作表格并添加常用文件夹

  Excel中怎么制作表格并添加常用文件夹: 1.其实使用模板的使用是比较简单的,比如我们有一个表格如何把它保存成表格.点击另存为. 2.弹出保存的界面框,选择我们要保存的位置,这个时候我们选择了位置,在选择文件类型,模板 3.注意看这里的模板的文件名是ett,这个时候也可以区分一下xls文件名. 4.我们先打开一下这个模板文件,修改完成之后,我们在保存文件为xls模式就可以了. 5.我们可以看到这2个文件,模板是不会被修改的. 6.同时我们可以设置保存在常用文件夹,这时我们添加常用文件夹.点

JavaScript表格常用操作方法汇总_javascript技巧

本文实例汇总了JavaScript表格常用操作方法.分享给大家供大家参考.具体如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <

关于从oracle 数据库中导出数据到csv格式文件中

问题描述 关于从oracle 数据库中导出数据到csv格式文件中 最近有个任务是从oracle中导出数据到csv 中的,因为数据库中的数据比较多,大概30万条,请问下,有哪个大神做个这种的,能不能导入这么大的数据 解决方案 将数据从DataGridView中导出成CSV格式文件oracle数据库的表数据导出为csv文件oracle数据库怎么导入csv格式文件呢 解决方案二: 不可以,分批导就行了 解决方案三: 可以使用常用的连接数据库的工具进行导入和导出,导出的时候导出行号,导入的时候建个表,行

【PHP】PHP使用PHPExcel生成Excel表格文件(附带随机生成英文名函数)

[PHP]PHP使用PHPExcel生成Excel表格文件(附带随机生成英文名函数) 前言 由于业务需要,我们需要从业务中汇总数据,并生成Excel文件. 思路是这样的 PHP要导出Excel表格文件->找一个好用的第三方库吧->在Composer的Packages里找一个吧->PHPExcel这么多收藏,就它了! PHPExcel 概述 PHPExcel is a library written in pure PHP and providing a set of classes th

C#读取和写入CSV格式文件总结

最近需求要将数据保存到.csv文件(逗号分隔值 )中然后上传到ftp服务器上,供系统调用.CSV数据格式并没有非常统一的标准 但是为了避免出错 我们在开发的时候统一格式是这样的 "name","pwd","date" "张三","123","2015-09-30" 接下来代码处理中默认格式都是这样的 其实就是纯文本的形式 为什么要用csv文件 这就涉及到数据互通的问题,有些程序支持的表格

针对Excel表格文件操作的编程实现

简介 通过本文及配套示例源码你可以更加灵活的控制Excel表格文件,其中包括创建新Excel文件.写入表格数据.读取表格数据(包括对原建Excel文件自已手工添加的行.列数据的准确读取),删除已有Excel表格,对表格中指定行.列.单元格进行查询.插入.替换等操作,同时还可以将生成的Excel文件转换为按指定分隔符分隔的其它文本格式的文件.下面是把此方法用VC6编写的示例程序运行效果: 基本思路 基础实现方法同上篇文章<直接通过ODBC读.写Excel表格文件>相同,都是通过ODBC来把Exc

php提取csv格式文件中的字符串出现的问题及解决办法

php带csv格式的数据要用到fgetcsv()函数. 用这下面的语句 $hd=fopen('test.csv','r'); $buf=fgetcsv($hd,1000,','); 打开一个test.csv格式的文件,文件中的内容以","号分开. 取出的第一行代表自动含义,比如 id,messaget,time等等. 从第二行开始表示具体的数据,比如1,消息,12:00. if($buf[1]=="some messages") echo "yes&quo