我正在使用php
开发我的网站,我需要能够浏览并上传Excel
表。然后,我需要将信息存储在SQL
数据库中。
我意识到这是一个相对开放的问题,但我已经找到了有关如何做到这一点的信息,并且还没有达到很远。将数据存储在SQL数据库中很好但我不确定如何上传电子表格以便网站可以阅读。
如果有人能指出我正确的方向,我将不胜感激。
答案 0 :(得分:10)
这个问题包含很多主题,我会简要总结一下需要注意什么才能解决你手头的问题。
(1)文件上传
首先,你必须上传。基本上你至少有两个组件。
示例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。
请记住,上传文件可能会遇到更多问题,例如:规范的上传大小等。
(2)解析Excel文件
现在您的文件已上传,您必须解析它。我建议使用PHPExcel,这是一个......
...为PHP编程提供一组类的项目 语言,允许您写入和读取不同的 电子表格文件格式,如Excel(BIFF).xls,Excel 2007 (OfficeOpenXML).xlsx,CSV,Libre / OpenOffice Calc .ods,Gnumeric,PDF, HTML,......
(3)在表格中存储值
在解析电子表格时或之后,您最终必须将其存储在表格中。无论你做什么,请不要在php中使用旧的mysql连接器,因为这个连接器已经过时并且已弃用。请改用mysqli或PDO。
同样,这只是一个短篇小说。在路上你最终会遇到更多挑战和问题。
答案 1 :(得分: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);
}
答案 2 :(得分:2)
答案 3 :(得分:1)
首先,您的Excel文件必须是CSV格式,否则在数据库中插入数据会更加困难(例如,您必须使用PhpExcel解析它)。
如果您的Excel文件是CSV,则必须使用LOAD DATA INFILE。
您可以在此处查看示例:https://stackoverflow.com/a/10897669/1788704