通过网站将Excel工作表数据上传到SQL数据库
我使用php
来开发我的网站,我需要能够浏览和上传一个Excel
表。 然后我需要将信息存储在SQL
数据库中。
我意识到这是一个相对开放的问题,但我已经find了如何做到这一点的信息,并没有太多的。 在SQL数据库中存储数据是好的,但我不知道如何上传电子表格,使其可以被网站阅读。
如果有人能指出我正确的方向,我将不胜感激。
这个问题包含了很多主题,我将尝试一个简短的总结,说明为了解决你的问题,必须要注意什么。
(1)file upload
首先,您必须提供上传。 基本上你至less有两个组件。
- HTML表单
- 一些(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文件
下载链接: https : //github.com/PHPOffice/PHPExcel
首先,你的Excel文件必须是CSV格式的,否则在你的数据库中插入数据将会困难得多(你必须用PhpExcelparsing它)。
如果您的Excel文件是CSV,那么您必须使用LOAD DATA INFILE 。
你可以在这里看到一个例子: https : //stackoverflow.com/a/10897669/1788704