使用PHP匯入和匯出CSV檔案

2021-07-16 08:39:18 字數 2276 閱讀 9653

專案開發中,很多時候要將外部csv檔案匯入到資料庫中或者將資料匯出為csv檔案,那麼具體該如何實現呢?本文將使用php並結合mysql,實現了csv格式資料的匯入和匯出功能。

我們先準備mysql資料表,假設專案中有一張記錄學生資訊的表student,並有id,name,***,age分別記錄學生的姓名、性別、年齡等資訊。

create

table

`student` (

`id`

int(11) not

null auto_increment,

`name`

varchar(50) not

null,

`***`

varchar(10) not

null,

`age`

smallint(3) not

null

default

'0',

primary

key (`id`)

) engine=myisam default charset=utf8;

我們還需要乙個html互動頁面,放置匯入表單和匯出按鈕。

do.php需要根據get過來的引數,分別處理匯入和匯出過程,php結構如下:
include_once ("connect.php"); //連線資料庫   

$action = $_get['action'];

if ($action == 'import') //匯入csv

elseif($action=='export') //匯出csv

if ($action == 'import')    

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

$result = input_csv($handle); //解析csv

$len_result = count($result);

if($len_result==0)

for($i = 1; $i

< $len_result; $i++) //迴圈獲取各字段值

$data_values = substr($data_values,0,-1); //去掉最後乙個逗號

fclose($handle); //關閉指標

$query = mysql_query("insert into student (name,***,age) values $data_values"); //批量插入資料表中

if($query)

else

}

**注意**

php自帶的fgetcsv函式可以輕鬆處理csv,使用該函式可以從檔案指標中讀入一行並解析csv欄位。下面的函式將csv檔案字段解析並以陣列的形式返回。

function

input_csv

($handle)

$n++;

}

return

$out;

}

此外在匯入到資料庫中時,我們採用的是批量插入而不是一條條插入的,因此在構建sql語句時,要稍作處理,見**。
我們知道csv檔案是由逗號分割符組成的純文字檔案,你可以用excel開啟,效果跟xls表個一樣。

...   

}elseif ($action=='export') //匯出csv

$filename = date('ymd').'.csv'; //設定檔名

export_csv($filename,$str); //匯出

}

要將資料匯出到本地即下在,需要修改header資訊,**如下:

function export_csv($filename,$data)   

注意匯入和匯出的過程中,因為我們使用的是統一utf-8編碼,遇到中文字元一定要記得轉碼,否則可能會出現中文亂碼的情況。

用php匯入匯出csv檔案

最近在做一些模組的時候,頻繁匯入匯出csv檔案,與excel相比他的處理更簡單,檔案體積更小,資料處理量大,而且很多語言都支援。廢話不多,上 charset utf 8 method post enctype multipart form data 上傳檔案h3 type file name fil...

MySQL匯入匯出CSV檔案

mysql自己提供了匯入匯出資料庫的工具,但有時我們需要僅僅匯入匯出單個表的資料,比如匯入匯出csv檔案,此時可以使用mysql自動的命令來做匯入匯出工作。匯出語法如下 select from table into outfile file 或者select from table into outf...

MySQL匯入匯出CSV檔案

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!mysql自己提供了匯入匯出資料庫的工具,但有時我們需要僅僅匯入匯出單個表的資料,比如匯入匯出csv檔案,此時可以使用mysql自動的命令來做匯入匯出工作。匯出語法如下 select from table into outfile file 或者s...