PHP讀取EXCEL的方法 上

來源:互聯網
上載者:User
常用的用PHP讀取EXCEL的方法有以下三種,各自有各自的優缺點。個人推薦用第三種方法,因為它可以跨平台使用。

1. 以.csv格式讀取
將.xls轉換成.csv的文字格式設定,然後再用PHP分析這個檔案,和PHP分析文本沒有什麼區別。
優點:跨平台,效率比較高、可以讀寫。
缺點:只能直接使用.csv的檔案,如果經常接受.xls二進位檔案的話需要手工轉換,不能自動化。一個檔案只有一個SHEET。

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 欄位的數組,不會被當成錯誤。

當然也可以自己手動分析字串。

例子:

 
  ";$handle = fopen("three.csv","r");while ($data = fgetcsv($handle, 1000, ",")) {$num = count($data);$row++;echo "
  
    ";for ($c=0; $c < $num; $c++) {echo "
    ";}echo "
   ";}echo "
  
".$data[$c]."
";fclose($handle);?>

還可以利用fputcsv函數將行格式化為 CSV 並寫入檔案指標。

2. ODBC連結資料來源

優點:支援多種格式,cvs, xls等。支援讀寫,使用標準SQL語言,和SQLSERVER、MYSQL資料庫幾乎完全一樣。
缺點:只支援windows伺服器

3. PHP自訂類(檔案有些大我放到了下一章)

優點:跨平台。某些類支援寫操作。支援.xls二進位檔案

test.php 中
修改 $data->setOutputEncoding('CP1251');

為 $data->setOutputEncoding('CP936');

簡體中文cp936、繁體的話可以修改為CP950、日文是CP932,等。

修改 $data->read('three.xls') 為自己的 excel 檔案名稱。

以上就介紹了PHP讀取EXCEL的方法 上,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.