0

我想要与此完全相反的。

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

最简单的方法是什么?

4

3 回答 3

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

    LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name
      FIELDS TERMINATED BY ',' ENCLOSED BY '"'
      LINES TERMINATED BY '\r\n'
      IGNORE 1 LINES;
    

MySQL 实例必须可以在本地访问该文件,因此如果服务器无法物理访问,则必须上传该文件。

于 2010-09-25T20:37:53.993 回答
1

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

于 2010-09-25T21:43:21.380 回答
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上。这应该让你继续努力。

于 2010-09-25T21:55:17.427 回答