通过网站将Excel工作表数据上传到SQL数据库

我使用php来开发我的网站,我需要能够浏览和上传一个Excel表。 然后我需要将信息存储在SQL数据库中。

我意识到这是一个相对开放的问题,但我已经find了如何做到这一点的信息,并没有太多的。 在SQL数据库中存储数据是好的,但我不知道如何上传电子表格,使其可以被网站阅读。

如果有人能指出我正确的方向,我将不胜感激。

这个问题包含了很多主题,我将尝试一个简短的总结,说明为了解决你的问题,必须要注意什么。

(1)file upload

首先,您必须提供上传。 基本上你至less有两个组件。

  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代码示例可以在这里find。

请记住,上传文件可能会有一些问题,比如上传大小等。

(2)parsingExcel文件

现在您的文件已上传,您必须parsing它。 我build议使用PHPExcel ,这是一个…

…项目提供了PHP编程语言的一组类,它允许您写入和读取不同的电子表格文件格式,如Excel(BIFF).xls,Excel 2007(OfficeOpenXML).xlsx,CSV,Libre / OpenOffice Calc .ods,Gnumeric,PDF,HTML,…

(3)将值存储在表格中

在分析电子表格的同时或之后,您最终必须将其存储在表格中。 无论你做什么,请不要在php中使用旧的mysql连接器,因为这是旧的,不推荐使用。 改用mysqli或PDO 。

再次,这只是一个简短的故事。 你最终会遇到更多的挑战和问题。

你可以导出你的文件为CSV,上传并用fgetcsv()parsing。 从PHP手册 :

 $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); } 

您可以使用PHPExcel阅读上传的Excel文件

http://phpexcel.codeplex.com/

下载链接: https : //github.com/PHPOffice/PHPExcel

首先,你的Excel文件必须是CSV格式的,否则在你的数据库中插入数据将会困难得多(你必须用PhpExcelparsing它)。

如果您的Excel文件是CSV,那么您必须使用LOAD DATA INFILE 。

你可以在这里看到一个例子: https : //stackoverflow.com/a/10897669/1788704