2013-07-09 62 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

相关问题