如何在php中将.xls文件加载到mysql数据库?

时间:2010-09-25 20:32:27

标签: php mysql xls

我希望与this完全相反。

我想将一个装满电子邮件的.xls文件加载到数据库列中。

最简单的方法是什么?

3 个答案:

答案 0 :(得分:1)

  1. 将Excel电子表格导出为CSV格式
  2. 使用MySQL's LOAD DATA INFILE syntax使用步骤1中创建的CSV文件,使用:

    LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name
      FIELDS TERMINATED BY ',' ENCLOSED BY '"'
      LINES TERMINATED BY '\r\n'
      IGNORE 1 LINES;
    
  3. 该文件必须在本地可由MySQL实例访问,因此如果服务器无法实际访问,则必须上传该文件。

答案 1 :(得分:1)

您可以使用PHPExcel,它可以读取大多数Excel文件格式(BIFF5,BIFF8,spreadsheetML)。遗憾的是,该项目的文档位于word文件中,因此无法直接链接到特定部分,但它是file的第6.4.1节/第37页。

答案 2 :(得分:1)

就像小马说的那样,你必须首先“另存为> CSV”,然后上传并做任何事情。但是,权限通常不允许该SQL语句。我个人最喜欢的是使用csv2sql.com,因为它会执行繁重的工作并为您提供执行的SQL,但是您可以使用更安全的fgetcsv,以及可以在脚本中实现的内容。

使用fgetcsv,您可以执行类似这样的操作,假设您只有一个列列出电子邮件地址的列文件:

$row = 1;
if (($handle = fopen("test.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        //echo "<p> $num fields in line $row: <br /></p>\n";
        $row++;
        for ($c=0; $c < $num; $c++) {
            if ($c==0){
                 //This is the first column
                 //Just run a generic MySQL insert command here (see below for link for more info on this)
            }
        }
    }
    fclose($handle);
}

PHP MySQL插件教程:W3Schools。这应该让你继续努力。