2013-07-09 89 views
3

我使用php來開發我的網站,我需要能夠瀏覽並上傳Excel工作表。然後我需要將這些信息存儲在SQL數據庫中。通過網站將Excel工作表數據上傳到SQL數據庫中

我意識到這是一個相對懸而未決的問題,但我已經找到了關於如何做到這一點的信息,並沒有太多的瞭解。將數據存儲在SQL數據庫中很好,但我不確定如何上傳電子表格以便網站可以讀取它。

如果任何人都可以指出我正確的方向,我將不勝感激。

+1

因此,用於讀取Excel文件的數十種PHP庫(例如[PHPExcel](https://github.com/PHPOffice/PHPExcel))或者將其轉換爲CSV並使用MySQL的'LOAD DATA INFILE'選項 - 你決定使用哪一個?你有什麼問題嗎? –

+1

非常好 - 謝謝。將通過此看。 – RGriffiths

回答

10

這個問題包含了很多的話題,我會嘗試爲了解決您手頭的問題,需要注意什麼是簡短的總結。

(1)文件上傳

首先,你必須做的一個上傳可用。基本上你至少有兩個組件。

  1. HTML表單
  2. 一些(PHP)代碼文件的工作。

實施例的HTML代碼:

<form action="your_upload_script.php" method="post" enctype="multipart/form-data"> 
    Your XLS file: <input type="file" name="xlsfile" size="50" /> 
    <input type="submit" name="submit" value="Submit" /> 
</form> 

一個簡單的,但固體例如PHP代碼可以發現here

請記住,上傳文件可能會有更多的問題,p.e.規範的上傳大小等。

(2)解析Excel文件

現在你的文件上傳,你必須分析它。我推薦使用PHPExcel,這是...

...爲PHP編程 語言提供一組類別的項目,它允許您寫入和讀取不同的 電子表格文件格式,如Excel(BIFF).xls,Excel 2007 (OfficeOpenXML).xlsx,CSV,Libre/OpenOffice計算器的.ods,Gnumeric的,PDF,HTML ...

(3)存儲在你的表

值雖然或分析電子表格後,你最終不得不將其存儲在你的桌子。不管你做什麼,請不要在php中使用舊的mysql連接器,因爲這個連接已經過時並且不推薦使用。改爲使用mysqliPDO

再一次,這只是一個小故事。你最終會遇到更多的挑戰和問題。

+0

非常有幫助 - 謝謝 – RGriffiths

2

則可以將文件導出爲CSV,上傳與fgetcsv()解析它。從PHP manual

$row = 1; 
if (($fh = fopen("excel.csv", "r")) !== FALSE) { 
    while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) { 
     $num = count($data); 
     $row++; 
     for ($c=0; $c < $num; $c++) { 
      //make query and insert into database 
     } 
    } 
    fclose($handle); 
} 
+0

謝謝。非常有用 - 將閱讀此。 – RGriffiths

相關問題