3

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

我意识到这是一个相对开放的问题,但我一直在寻找有关如何做到这一点的信息并且还没有走得太远。将数据存储在 SQL 数据库中很好,但我不知道如何上传电子表格以便网站可以读取它。

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

4

4 回答 4

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 代码。

请记住,上传文件可能会遇到更多问题,例如受监管的上传大小等。

(2)解析Excel文件

现在您的文件已上传,您必须对其进行解析。我推荐使用PHPExcel,这是一个...

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

(3) 将值存储在表中

在解析电子表格时或之后,您最终必须将其存储在表格中。无论你做什么,请不要在 php 中使用旧的 mysql 连接器,因为这个连接器已经过时且已被弃用。请改用mysqliPDO

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

于 2013-07-09T07:35:33.300 回答
2

您可以将文件导出为 CSV,上传并使用fgetcsv(). 从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);
}
于 2013-07-09T07:26:08.050 回答
2

您可以使用 PHPExcel 读取上传的 excel 文件

http://phpexcel.codeplex.com/

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

于 2013-07-09T07:26:36.463 回答
1

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

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

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

于 2013-07-09T07:24:35.473 回答