繁体   English   中英

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

[英]How can I load an .xls file to a mysql database in php?

我想的完全相反

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

最简单的方法是什么?

  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实例在本地可访问的,因此,如果服务器无法物理访问,则必须上载该文件。

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

就像小马说的那样,您必须先“另存为> 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);
}

W3Schools上的PHP MySQL Insert教程: 那应该使您继续努力。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM