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

时间:2013-07-09 07:20:00

标签: php excel

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

我意识到这是一个相对开放的问题,但我已经找到了有关如何做到这一点的信息,并且还没有达到很远。将数据存储在SQL数据库中很好但我不确定如何上传电子表格以便网站可以阅读。

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

4 个答案:

答案 0 :(得分:10)

这个问题包含很多主题,我会简要总结一下需要注意什么才能解决你手头的问题。

(1)文件上传

首先,你必须上传。基本上你至少有两个组件。

  1. HTML表单
  2. 使用该文件的一些(php)代码。
  3. 示例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连接器,因为这个连接器已经过时并且已弃用。请改用mysqliPDO

    同样,这只是一个短篇小说。在路上你最终会遇到更多挑战和问题。

答案 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)

您可以使用PHPExcel

阅读上传的Excel文件

http://phpexcel.codeplex.com/

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

答案 3 :(得分:1)

首先,您的Excel文件必须是CSV格式,否则在数据库中插入数据会更加困难(例如,您必须使用PhpExcel解析它)。

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

您可以在此处查看示例:https://stackoverflow.com/a/10897669/1788704