PHP实现CSV文件的导入和导出类

 这篇文章主要介绍了PHP实现CSV文件的导入和导出类,实例分析了php针对csv文件的操作技巧,非常具有实用价值,需要的朋友可以参考下

 
 

本文实例讲述了PHP实现CSV文件的导入和导出类。分享给大家供大家参考。具体如下:

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113

<?php
/**
* CSV 文件处理类
*/
class Csv{
public $csv_array; //csv数组数据
public $csv_str; //csv文件数据
public function __construct($param_arr, $column){
$this->csv_array = $param_arr;
$this->path = $path;
$this->column = $column;
}
/**
* 导出
* */
public function export(){
if(empty($this->csv_array) || empty($this->column)){
return false;
}
$param_arr = $this->csv_array;
unset($this->csv_array);
$export_str = implode(',',$param_arr['nav'])."n";
unset($param_arr['nav']);
//组装数据
foreach($param_arr as $k=>$v){
foreach($v as $k1=>$v1){
$export_str .= implode(',',$v1)."n";
}
}
//将$export_str导出
header( "Cache-Control: public" );
header( "Pragma: public" );
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:attachment;filename=txxx.csv");
header('Content-Type:APPLICATION/OCTET-STREAM');
ob_start();
// $file_str= iconv("utf-8",'gbk',$export_str);
ob_end_clean();
echo $export_str;
}
/**
* 导入
* */
public function import($path,$column = 3){
$flag = flase;
$code = 0;
$msg = '未处理';
$filesize = 1; //1MB
$maxsize = $filesize * 1024 * 1024;
$max_column = 1000;
 
//检测文件是否存在
if($flag === flase){
if(!file_exists($path)){
$msg = '文件不存在';
$flag = true;
}
}
//检测文件格式
if($flag === flase){
$ext = preg_replace("/.*.([^.]+)/","$1",$path);
if($ext != 'csv'){
$msg = '只能导入CSV格式文件';
$flag = true;
}
}
//检测文件大小
if($flag === flase){
if(filesize($path)>$maxsize){
$msg = '导入的文件不得超过'.$maxsize.'B文件';
$flag = true;
}
}
//读取文件
if($flag == flase){
$row = 0;
$handle = fopen($path,'r');
$dataArray = array();
while($data = fgetcsv($handle,$max_column,",")){
$num = count($data);
if($num < $column){
$msg = '文件不符合规格真实有:'.$num.'列数据';
$flag = true;
break;
}
if($flag === flase){
for($i=0;$i<3;$i++){
if($row == 0){
break;
}
//组建数据
$dataArray[$row][$i] = $data[$i];
}
}
$row++;
}
}
return $dataArray;
}
}
$param_arr = array(
'nav'=>array('用户名','密码','邮箱'),
array(0=>array('xiaohai1','123456','xiaohai1@zhongsou.com'),
1=>array('xiaohai2','213456','xiaohai2@zhongsou.com'),
2=>array('xiaohai3','123456','xiaohai3@zhongsou.com')
));
$column = 3;
$csv = new Csv($param_arr, $column);
//$csv->export();
$path = 'C:Documents and SettingsAdministratorTemptxxx.csv';
$import_arr = $csv->import($path,3);
var_dump($import_arr);
?>

希望本文所述对大家的php程序设计有所帮助。

时间: 2024-10-15 04:15:07

PHP实现CSV文件的导入和导出类的相关文章

PHP实现CSV文件的导入和导出类_php技巧

本文实例讲述了PHP实现CSV文件的导入和导出类.分享给大家供大家参考.具体如下: <?php /** * CSV 文件处理类 */ class Csv{ public $csv_array; //csv数组数据 public $csv_str; //csv文件数据 public function __construct($param_arr, $column){ $this->csv_array = $param_arr; $this->path = $path; $this->

《R语言与数据挖掘最佳实践和经典案例》—— 2.2 CSV文件的导入与导出

2.2 CSV文件的导入与导出 下面的例子创建了一个名为df1的数据框,并通过函数write.csv()将其保存为一个.CSV文件.然后,使用函数read.csv()将数据框df1加载到数据框df2中.

Laravel Excel导入导出Excel/CSV 文件例子

1.简介 Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel,从而方便我们以优雅的.富有表现力的代码实现Excel/CSV文件的导入和导出. 该项目的GitHub地址是:https://github.com/Maatwebsite/Laravel-Excel. 本文我们将在Laravel中使用Laravel Excel简单实现Excel文件的导入和导出. 2.安装&配置 使用Composer安装依赖 首先在Laravel项目根目录下使用Co

Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解

1.简介 本文主要给大家介绍了关于Laravel 5用Laravel Excel实现Excel/CSV文件导入导出的相关内容,下面话不多说了,来一起看看详细的介绍吧. Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel ,从而方便我们以优雅的.富有表现力的代码实现Excel/CSV文件的导入和 导出 . 该项目的GitHub地址是: https://github.com/Maatwebsite/Laravel-Excel. 本地下载地址:h

应用Java泛型和反射导出CSV文件的方法_java

本文实例讲述了应用Java泛型和反射导出CSV文件的方法.分享给大家供大家参考.具体如下: 项目中有需求要把数据导出为CSV文件,因为不同的类有不同的属性,为了代码简单,应用Java的泛型和反射,写了一个函数,完成导出功能. 复制代码 代码如下: public <T> void saveFile(List<T> list, String outFile) throws IOException {         if (list == null || list.isEmpty())

php使用指定编码导出mysql数据到csv文件的方法_php技巧

本文实例讲述了php使用指定编码导出mysql数据到csv文件的方法.分享给大家供大家参考.具体实现方法如下: <?php /* * PHP code to export MySQL data to CSV * * Sends the result of a MySQL query as a CSV file for download * Easy to convert to UTF-8. */ /* * establish database connection */ $conn = mysq

《R语言与数据挖掘最佳实践和经典案例》—— 第2章 数据的导入与导出

第2章 数据的导入与导出 本章将介绍如何将外部数据导入R中,以及将R对象导出到其他格式的文件中.首先,我们将给出将R对象保存到.Rdata文件并从.Rdata文件中加载R对象的例子:然后分别演示从.CSV文件.SAS数据库.ODBC数据库以及EXCEL文件中导入与导出数据.读者想要了解更多关于数据导入与导出的详细内容可以参考<R Data Import/Export>[R核心开发团队,2010a].

《R语言与数据挖掘最佳实践和经典案例》—— 2.4 通过ODBC导入与导出数据

2.4 通过ODBC导入与导出数据 RODBC包提供了ODBC数据库的连接[Ripley and from 1999 to Oct 2002 Michael Lapsley,2012]. 2.4.1 从数据库中读取数据 下面是一个从ODBC数据库读取数据的例子.函数odbcConnect()建立了一个数据库连接,函数sqlQuery()向数据库发送一个SQL查询,而函数odbcClose()关闭数据库连接. 此外,函数sqlSave()和sqlUpdate()用于写入或更新一个ODBC数据库表.

oledb-OleDb可以对csv文件里面的数据更新吗?

问题描述 OleDb可以对csv文件里面的数据更新吗? 我想通过OleDb对csv文件进行更新,可不可以实现,实现不了用什么办法能够做出来?http://ask.csdn.net/questions/172505# 解决方案 csv文件直接用System.IO类就可以操作了,以文本文件的方式解析字符串就可以了.oledb可以对xls进行操作,csv文件都是可以转换成xls文件进行操作的,直接对csv操作未用过. 解决方案二: http://blog.163.com/y_p_xu/blog/sta