747
人物
用php实现将两个表格的数据差集取出来放到一个新的excel里
首先,这里有个1.xlsx和2.xlsx。如图:
1.xlsx 2.xlsx
需要将其分别另存为csv格式的:
php代码如下:
<?php
/**
* @desc 用php实现,将两个表格(1.csv,2.csv)里,存在于2.csv的但不存在于1.csv的数据取出来,单独放到一个新的csv里
*/
$file_a = file(’1.csv’);
unset($file_a[0]);
$file_b = file(’2.csv’);
unset($file_b[0]);
$content = “域名,域名所有人n”;//csv 的头部
$new_arr = array();
foreach ($file_a as $k=>$v){
$v_2 = explode(”,”,$v);
$v_2[0] = trim($v_2[0]);
array_push($new_arr,$v_2[0]);
}
foreach ($file_b as $kk=>$vv){
$vv_2 = explode(”,”,$vv);
$vv_2[0] = trim($vv_2[0]);
if($vv_2[0]){
if(!in_array($vv_2[0],$new_arr)){
$vv_2[1] = trim($vv_2[1]);
$content .= “$vv_2[0],$vv_2[1]n”;//csv 的内容
}else{
continue;
}
}
}
$filename = ‘newfile.csv’;//名称
ob_end_clean();//清除缓存
header(’Last-Modified: ‘.gmdate(’D, d M Y H:i:s’).’ GMT’);
header(’Pragma: no-cache’);
header(’Content-Encoding: none’);
header(’Content-Disposition: attachment; filename=’.$filename);
header(’Content-Length: ‘ . strlen($content));
header(’Content-type: application/vnd.ms-excel’);
echo $content;exit;
?>
这里,得到的结果是:
注:本例适合数据量较小的表格,数据量大了,可能会卡~
最后更新:2017-01-04 22:34:39