PHP處理CSV表格檔案的常用操作方法總結_php執行個體

來源:互聯網
上載者:User

要做線上Excel表格編輯功能,Excel的xls檔案格式的解析就是個問題,畢竟這是微軟Office的私人專利格式.
所以要做的話還是用通用的csv(Comma Separated Value,逗號分隔值)格式吧.
各種辦公軟體都能識別csv表格,其實就是以特定分隔字元(比如逗號)分隔儲存格的表格.
拿PHP來說,fgetcsv讀入csv表格,返回一個數組,
然後foreach輸出成HTML的<table>,這步操作幾行代碼就能實現,非常簡單.
工作量主要還在於瀏覽器前端,建議你用jQuery進行DOM和AJAX操作,
要實現phpMyAdmin那樣細粒度雙擊儲存格編輯,然後AJAX提交也不難,
或者整個表格寫好後一次性$("form").serialize();然後AJAX提交也可以.

CSV表格的幾條規則:
1.每一行的儲存格內容之間用逗號分隔.
2.如果儲存格的內容本身有逗號,這個儲存格的內容將會用引號包含.
3.如果儲存格的內容本身有引號:
(1)引號不在首或尾,這個儲存格內容不會被引號包含.
(2)引號在首或尾,這個儲存格內容會被引號包含,並且原來首尾的引號會被轉義.

讀寫CSV

<?phpheader('Content-Type: text/plain; charset=utf-8');//匯出CSV表格:數組轉CSV$arr = array (  array('ab', 'cd'),  array('"a,b"', '"c,d"'),);$fp = fopen('file.csv', 'w');foreach ($arr as $row) {  //將一行格式化為CSV並寫入檔案指標  fputcsv($fp, $row);}fclose($fp);unset($arr);//匯入CSV表格:CSV轉數組$fp = fopen('file.csv', 'r');while ( ($row = fgetcsv($fp)) !== FALSE ) {  //從檔案指標中讀入一行並解析CSV  $arr[] = $row;}fclose($fp);var_export($arr);

另存新檔一個獨立檔案
download.php:

 <?php$list = array (  'aaa,bbb,ccc,dddd',  '123,456,789',  '"aaa","bbb"');session_start();$_SESSION['outputArray']=$list;?><a href="test.php" target="_blank">下載csv檔案</a>

test.php:
<?phpsession_start();$outputArray=$_SESSION['outputArray'];header('Content-Type: application/csv');header('Content-Disposition: attachment;filename="sales.csv"');$output=fopen('php://output','w') or die("can not open");foreach ($outputArray as $line) {  fputcsv($output, split(',', $line));}fclose($output) or die("can not close");?>

自動儲存csv檔案到指定地點
<?php$list = array (  'aaa,bbb,ccc,dddd',  '123,456,789',  '"aaa","bbb"');$fp = fopen('file.csv', 'w');foreach ($list as $line) {  fputcsv($fp, split(',', $line));}fclose($fp);?>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.