php读取csv和excel文件内容,php读取excel文件(.csv)实例介绍

PHP有自带的分析.csv函数:fgetcsv

array fgetcsv ( int $handle [, int $length [, string $delimiter [, string $enclosure]]] )

handle 一个由 fopen()、popen() 或 fsockopen() 产生的有效文件指针。

length (可选)必须大于 CVS 文件内最长的一行。在 PHP 5 中该参数是可选的。如果忽略(在 PHP 5.0.4 以后的版本中设为 0)该参数的话,那么长度就没有限制,不过可能会影响执行效率。

delimiter (可选)设置字段分界符(只允许一个字符),默认值为逗号。

enclosure (可选)设置字段环绕符(只允许一个字符),默认值为双引号。该参数是在 PHP 4.3.0 中添加的。 和 fgets() 类似,只除了 fgetcsv() 解析读入的行并找出 CSV 格式的字段然后返回一个包含这些字段的数组。

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

注意: CSV 文件中的空行将被返回为一个包含有单个 null 字段的数组,不会被当成错误。

代码如下

例2

在百度统计和站长工具使用过程中会涉及到很多csv文件,比如我们下载百度站长工具的404统计数据,直接可以使用以下php脚本来读取csv文件然后更新提交。

php读取excel文件(.csv)参考代码:

代码如下

foreach ($dataName as $k=>$v)

{

if($k == $c)//对应的字段

{

$data[$v] = $dataSrc[$c];

}

}

}

}

if(!empty($data))

{

$dataRtn[] = $data;

unset($data);

}

$row++;

}

fclose($handle);

return $dataRtn;

}

}

$aData = getCSVdata('all_www.111com.net .csv');

foreach ($aData as $k=>$v ){

echo "http://".$v['a']."

";

}

?>

PHP自定义类

优点:跨平台。某些类支持写操作。支持.xls二进制文件

常用的类有phpExcelReader、PHPExcel。其中后者支持读写,但是需要php5.2以上版本。

phpExcelReader是专门用来读取文件的。返回一个数组,包含表格的所有内容。

该 class 使用的方法可以参考网站下载回来的压缩档中的 example.php。

例3.php数据导入导出之excel

上传cvs并导入到数据库中,测试成功(部分代码不规范,如PHP_SELF那里要改写成

代码如下

$_SERVER["PHP_SELF"] )

PHP代码" METHOD="POST">

导入CVS数据

error_reporting(0);

//导入CSV格式的文件

$connect=mysql_connect("localhost","a0530093319","123456") or die("could not connect to database");

mysql_select_db("a0530093319",$connect) or die (mysql_error());

$fname = $_FILES['MyFile']['name'];

$handle=fopen("$fname","r");

while($data=fgetcsv($handle,10000,","))

{

$q="insert into test (code,name,date) values ('$data[0]','$data[1]','$data[2]')";

mysql_query($q) or die (mysql_error());

}

fclose($handle);

?>

用php将数据库导出成excel,测试完全成功

PHP代码

代码如下

word = "123456";

$DB_DBName = "a0530093319";

$DB_TBLName = "member";

$savename = date("YmjHis");

$Connect = @mysql_connect($DB_Server, $DB_Username, $DB_Password)

or die("Couldn't connect.");

mysql_query("Set Names 'gb2312'");

$file_type = "vnd.ms-excel";

$file_ending = "xls";

header("Content-Type: application/$file_type");

header("Content-Disposition: attachment; filename=".$savename.".$file_ending");

header("Pragma: no-cache");

header("Expires: 0");

$now_date = date("Y-m-j H:i:s");

$title = "数据库名:$DB_DBName,数据表:$DB_TBLName,备份日期:$now_date";

$sql = "Select * from $DB_TBLName";

$ALT_Db = @mysql_select_db($DB_DBName, $Connect)

or die("Couldn't select database");

$result = @mysql_query($sql,$Connect)

or die(mysql_error());

echo("$title ");

$sep = " ";

for ($i = 0; $i < mysql_num_fields($result); $i++) {

echo mysql_field_name($result,$i) . " ";

}

print(" ");

$i = 0;

while($row = mysql_fetch_row($result)) {

$schema_insert = "";

for($j=0; $j

if(!isset($row[$j]))

$schema_insert .= "NULL".$sep;

elseif ($row[$j] != "")

$schema_insert .= "$row[$j]".$sep;

else

$schema_insert .= "".$sep;

}

$schema_insert = str_replace($sep."$", "", $schema_insert);

$schema_insert .= " ";

print(trim($schema_insert));

print " ";

$i++;

}

return (true);

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值