CSV,是Comma Separated Value(逗号分隔值)的英文缩写,通常都是纯文本文件。

一、CSV数据导入函数fgetcsv()

fgetcsv() 函数从文件指针中读入一行并解析 CSV 字段。

与 fgets() 类似,不同的是 fgetcsv() 解析读入的行并找出 CSV 格式的字段,然后返回一个包含这些字段的数组。

fgetcsv() 出错时返回 FALSE,包括碰到文件结束时。

具体使用时封装函数如下:

/**

* 导入Excel数据表格

* @param string $fileName 文件名

* @param int $line 读取几行,默认全部读取

* @param int $offset 从第几行开始读,默认从第一行读取

* @return bool|array

*/

public function importCsv($fileName, $line=0, $offset=0){

//set_time_limit(0);//防止超时

//ini_set("memory_limit", "512M");//防止内存溢出

$handle = fopen($fileName,'r');

if(!$handle){

return '文件打开失败';

}

$i = 0;

$j = 0;

$arr = [];

while($data = fgetcsv($handle)){

//小于偏移量则不读取,但$i仍然需要自增

if($i < $offset && $offset){

$i++;

continue;

}

//大于读取行数则退出

if($i > $line && $line){

break;

}

foreach ($data as $key => $value) {

$content = iconv("gbk","utf-8//IGNORE",$value);//转化编码

$arr[$j][] = $content;

}

$i++;

$j++;

}

return $arr;

}

二、CSV数据导出函数fputcsv()

前言:Excel表格最高支持104W行,导出数据达到上万的量,PHPExcel就显得有点无力了,经常卡死或者内存溢出,若做普通的数据导出功能,建议使用fputcsv()函数,因为此函数要比PHPexcel要高效的多,二十万数据导出大概需要2到3秒。

fputcsv() 函数将行格式化为 CSV 并写入一个打开的文件。

该函数返回写入字符串的长度。若出错,则返回 false。

具体使用时封装函数如下:

(注意点:

参数:$exportUrl分两种情况,根据需求选择其一

1.$exportUrl = 'php://output' 表示表示直接输出到浏览器自动下载。

2.$exportUrl = "服务器目录地址/文件名.csv" 表示输出到指定路径文件下。举例:$exportUrl = "/data/a.csv")。

/**

* 导出Excel数据表格

* @param array $dataList 要导出的数组格式的数据

* @param array $headList 导出的Excel数据第一列表头

* @param string $fileName 输出Excel表格文件名

* @param string $exportUrl 直接输出到浏览器or输出到指定路径文件下

* @return bool|false|string

*/

public static function toExcel($dataList,$headList,$fileName,$exportUrl){

//set_time_limit(0);//防止超时

//ini_set("memory_limit", "512M");//防止内存溢出

header('Content-Type: application/vnd.ms-excel');

header('Content-Disposition: attachment;filename="'.$fileName.'.csv"');

header('Cache-Control: max-age=0');

//打开PHP文件句柄,php://output 表示直接输出到浏览器,$exportUrl表示输出到指定路径文件下

$fp = fopen($exportUrl, 'a');

//输出Excel列名信息

foreach ($headList as $key => $value) {

//CSV的Excel支持GBK编码,一定要转换,否则乱码

$headList[$key] = iconv('utf-8', 'gbk', $value);

}

//将数据通过fputcsv写到文件句柄

fputcsv($fp, $headList);

//计数器

$num = 0;

//每隔$limit行,刷新一下输出buffer,不要太大,也不要太小

$limit = 100000;

//逐行取出数据,不浪费内存

$count = count($dataList);

for ($i = 0; $i < $count; $i++) {

$num++;

//刷新一下输出buffer,防止由于数据过多造成问题

if ($limit == $num) {

ob_flush();

flush();

$num = 0;

}

$row = $dataList[$i];

foreach ($row as $key => $value) {

$row[$key] = iconv('utf-8', 'gbk', $value);

}

fputcsv($fp, $row);

}

return $fileName;

}

使用Sqlserver Management Studio 导入导出 Excel的方法

之前 帮同事  导入sql server数据     本来打算用 C# 写程序导入的 后来发现网上的方法  貌似 都会对版本  限制来限制去的 看的我好头晕(吐槽一下  难道就没有一个 普遍的方法嘛, ...

从SQL Server中导入&sol;导出Excel的基本方法&lpar;转&rpar;

从sql server中导入/导出 excel 的基本方法 /*=========== 导入/导出 excel 的基本方法 ===========*/ 从excel文档中,导入数据到sql数据库中,很 ...

thinkphp导入导出excel表单数据

在PHP项目经常要导入导出Excel表单. 先去下载PHPExcel类库文件,放到相应位置. 我在thinkphp框架中的位置为ThinkPHP/Library/Org/Util/ 导入 在页面上传e ...

asp&period;net中导出Excel的方法

一.asp.net中导出Excel的方法: 本文转载 在asp.net中导出Excel有两种方法,一种是将导出的文件存放在服务器某个文件夹下面,然后将文件地址输出在浏览器上:一种是将文件直接将文件输出 ...

导入导出Excel工具类ExcelUtil

前言 前段时间做的分布式集成平台项目中,许多模块都用到了导入导出Excel的功能,于是决定封装一个ExcelUtil类,专门用来处理Excel的导入和导出 本项目的持久化层用的是JPA(底层用hibe ...

NPOI导入导出EXCEL通用类,供参考,可直接使用在WinForm项目中

以下是NPOI导入导出EXCEL通用类,是在别人的代码上进行优化的,兼容xls与xlsx文件格式,供参考,可直接使用在WinForm项目中,由于XSSFWorkbook类型的Write方法限制,Wri ...

jxl导入&sol;导出excel

1.jxl导入/导出excel案例,黏贴即可运行 package junit.test; import java.io.File; import java.io.IOException; import ...

C&num;导入导出Excel表的数据

一:C#导入导出EXCEL文件的类 代码如下: 首先将Microsoft Excel 14.0 Object Library 引用导入 using System; using System.Data; ...

随机推荐

NoSQL生态系统——事务机制,行锁,LSM,缓存多次写操作,RWN

13.2.4 事务机制 NoSQL系统通常注重性能和扩展性,而非事务机制. 传统的SQL数据库的事务通常都是支持ACID的强事务机制.要保证数据的一致性,通常多个事务是不可能交叉执行的,这样就导致了可 ...

String、StringBuffer、StringBuilder的区别

在日常开发过程中String字符串估计是被用到最多的变量了,最近看了一些String.StringBuffer和StringBuilder的东西,三者都可以对字符串进行操作,他们究竟有什么区别,以及适 ...

【Java基础】泛型

Num1:请不要在新代码中使用原生类型 泛型类和接口统称为泛型.每种泛型定义一组参数化的类型,构成格式是:类或接口名称,接着用<>把对应于泛型形式类型的参数的实际参数列表括起来.比如:Li ...

使用Hammer&period;js的H5页面开发DOM的一些小说法

前几天,一个小伙伴说叫我帮他写一个移动端上的一个轮播图,个人一般是不接私活的,毕竟平时工作也是单双休,时间也不很多. 可能大部分程序员,多余的时间都是看看新闻,打游戏,或者学习新的知识,缺少运动吧. ...

php中HTTP&lowbar;X&lowbar;FORWARDED&lowbar;FOR 和 REMOTE&lowbar;ADDR的使用

1.REMOTE_ADDR:浏览当前页面的用户计算机的ip地址2.HTTP_X_FORWARDED_FOR: 浏览当前页面的用户计算机的网关3.HTTP_CLIENT_IP:客户端的ip 在PHP 中 ...

Confluence 6 超过当前许可证期限进行升级

这个页面将会对你在进行 Confluence 升级的时候超过了当前许可证的期限进行升级的情况. 许可证警告 在升级的过程中,你将会在 Confluence 的应用程序日志(log file)中看到类似 ...

Android为TV端助力 Canvas 和 Paint用法

自定义view里面的onDraw方法,在这里我们可以绘制各种图形,onDraw里面有两个API我们需要了解清楚他们的用法:Canvas 和 Paint. Canvas翻译成中文就是画布的意思,Canv ...

iOS 去除百度地图下方的 logo

UIView *mView = _mapView.subviews.firstObject; for (id logoView in mView.subviews)  { if ([logoView  ...

BZOJ4313 &colon; 三维积木

不妨设$R$是唯一可以看到的颜色,考虑一维序列的情况. 设$f[i][j][k][x][y]$表示考虑了前$i$个位置,第$i$个位置的高度是$j$,最高高度是$k$,已经用了$x$个$R$,$y$个 ...

python scrapy爬虫存储数据库方法带去重步骤

import pymongo import requests import random import time import pymysql db = pymongo.MongoClient()[' ...

csv和excel php 解析_PHP 高效导入导出Excel(csv)方法之fgetcsv()和fputcsv()函数相关推荐

  1. python导入excel数据-Python数据处理之导入导出excel数据

    欢迎点击上方"AntDream"关注我 .Python的一大应用就是数据分析了,而数据分析中,经常碰到需要处理Excel数据的情况.这里做一个Python处理Excel数据的总结, ...

  2. Npoi html导入到excel,.net mvc 利用NPOI导入导出excel

    因近期项目做到,所以记录一下: 1.导出Excel: 首先引用NPOI包,从这里下载>download (Action一定要用FileResult) /// /// 批量导出需要导出的列表 // ...

  3. java导出excel float_【Java】导入导出Excel表格

    1.将excel导入到内存 1. 调用工作簿Workbook的静态方法getWorkbook(),获得工作簿Workbook对象 InputStream in = new FileInputStrea ...

  4. ASP.NET Core 导入导出Excel xlsx 文件

    ASP.NET Core 使用EPPlus.Core导入导出Excel xlsx 文件,EPPlus.Core支持Excel 2007/2010 xlsx文件导入导出,可以运行在Windows, Li ...

  5. mvc npoi导出excel ajax,ASP.Net MVC利用NPOI导入导出Excel

    因近期项目遇到所以记录一下: 首先导出Excel: 首先引用NPOI包 http://pan.baidu.com/s/1i3Fosux (Action一定要用FileResult) /// /// 批 ...

  6. PHP 导入导出excel、csv百万数据到数据库

    PHP 导入导出excel.csv百万数据到数据库 待解决: wamp下导入导出百万数据没有问题 lnmp下导入10W条数据没问题,导入50W及以上会出现nginx504报错 代码包地址 测试数据表地 ...

  7. java导入导出excel_Java导入导出Excel工具 easyexcel

    Java导入导出Excel工具  easyexcel 做Java开发的同学,尤其是做管理后台的同学绝大多数都会接触到报表系统,这时候就少不了Excel的导入和导出了.Java解析生成Excel比较有名 ...

  8. Java基于注解和反射导入导出Excel

    代码地址如下: http://www.demodashi.com/demo/11995.html 1. 构建项目 使用Spring Boot快速构建一个Web工程,并导入与操作Excel相关的POI包 ...

  9. java 导入导出excel表格

    java 导入导出excel表格 业务上有需求上传excel表格并读取内容,本文记录一下该方法 表格导入 引入相应的工具包 <dependency><groupId>cn.af ...

最新文章

  1. Linux运维相关目录
  2. 【原创】VSFTP: Login failure: 530 Login incorrect的解决办法
  3. hibernate缓存机制详细介绍
  4. 通过Windows Azure Connect ,实现本地机器与Windows Azure 虚拟机的相互连接(转+译)...
  5. 经典C语言程序100例之二
  6. 认识Linux下的各种系统服务
  7. 数据挖掘算法(logistic回归,随机森林,GBDT和xgboost)-腾讯云社区
  8. 国内11所“袖珍”大学!最小的甚至只有一栋楼……
  9. VS2010 修改模板文件,增加默认注释
  10. 移动电商营销吸睛法宝----图标、标签
  11. mybatis中xml文件的#{param1}和#{属性名},比如#{id}的使用环境以及使用的时机情况
  12. 白盒测试方法与黑盒测试方法简析
  13. php大马的使用教程,一php大马,值得研究
  14. 用C++实现布线问题
  15. pad平板性能测试软件,苹果iPad 2020款评测,最便宜的iPad,性能碾压安卓?
  16. 通过Unity预编译文件smcs.rsp文件添加预编译命令
  17. python画一个心形照片墙怎么摆_这个七夕节,用Python为女友绘制一张爱心照片墙吧!...
  18. Golang学习(十四)数组
  19. 使用labelme标记图片、json批量转dataset的解决方案以及一些问题解决方案
  20. 二叉树的ZigZag打印-Java

热门文章

  1. 吴裕雄--天生自然 高等数学学习:数量积、向量积和混合积
  2. Novamind 5 安装+和谐----请在补丁前关闭文件,和谐不成功
  3. 刚从电影院回来,随便写写……
  4. 原理图-电源电路设计
  5. 经典人生格言100句
  6. 四句话送给项目人:谦逊不狂、博而有专、聪而不明、束己驭人
  7. 【人脸交换技术】:探索最高效的面部转换算法
  8. 毕业设计 Arduino智能灌溉系统 - 嵌入式 单片机 物联网
  9. echarts legend不显示
  10. 只拿死工资会杀死一个人的人生