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