当前位置: 首页 > 编程笔记 >

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

仲孙磊
2023-03-14
本文向大家介绍PHP处理CSV表格文件的常用操作方法总结,包括了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);
?>
 类似资料:
  • 本文向大家介绍JavaScript表格常用操作方法汇总,包括了JavaScript表格常用操作方法汇总的使用技巧和注意事项,需要的朋友参考一下 本文实例汇总了JavaScript表格常用操作方法。分享给大家供大家参考。具体如下: 希望本文所述对大家的javascript程序设计有所帮助。

  • 本文向大家介绍PHP文件操作方法汇总,包括了PHP文件操作方法汇总的使用技巧和注意事项,需要的朋友参考一下 在data文件中写入数据: 写入成功后可以在页面看到“OK” 接下来读取data文件里的数据 如果有多行数据该怎么读取? 方法一 while: 方法二 file_get_contents(): 以上所述就是本文的全部内容了,希望大家能够喜欢。

  • 本文向大家介绍php操作csv文件代码实例汇总,包括了php操作csv文件代码实例汇总的使用技巧和注意事项,需要的朋友参考一下 1.读取csv数据, 输出到sales.csv文件中: 2. 读取csv数据, 使用特殊的流输出 3. 读取csv数据, 输出到缓冲中 4. 读取csv文件的数据 5. 下载CSV文件 6.读取CSV文件指定行和区间行

  • 本文向大家介绍PHP常用技术文之文件操作和目录操作总结,包括了PHP常用技术文之文件操作和目录操作总结的使用技巧和注意事项,需要的朋友参考一下 一、基本文件的操作 文件的基本操作有:文件判断、目录判断、文件大小、读写性判断、存在性判断及文件时间等 结果: 二、目录的操作 目录的操作有:遍历目录、删除、复制、大小统计等 1、遍历目录 结果 2、统计目录大小 结果: 3、删除目录 删除成功的提示信息

  • 本文向大家介绍Node.js文件操作方法汇总,包括了Node.js文件操作方法汇总的使用技巧和注意事项,需要的朋友参考一下 Node.js和其他语言一样,也有文件操作。先不说node.js中的文件操作,其他语言的文件操作一般也都是有打开、关闭、读、写、文件信息、新建删除目录、删除文件、检测文件路径等。在node.js中也是一样,也都是这些功能,可能就是api与其他语言不太一样。 一、同步、异步打开

  • 本文向大家介绍pandas处理csv文件的方法步骤,包括了pandas处理csv文件的方法步骤的使用技巧和注意事项,需要的朋友参考一下 一、我的需求 对于这样的一个 csv 表,需要将其 (1)将营业部名称和日期和股票代码进行拼接 (2)对于除了买入金额不同的的数据需要将它们的买入金额相加,每个买入金额乘以买卖序号的符号表示该营业名称对应的买入金额 比如:xx公司,20190731,1,股票1,4