【问题标题】:How to Import the data from an excel sheet to the MySQL table AUTOMATICALLY?如何自动将数据从 Excel 表导入 MySQL 表?
【发布时间】:2025-11-23 15:10:01
【问题描述】:

我需要开发一个 Java 应用程序,每天将数据从 Excel 工作表加载到 MySQL 数据库表中。

我的实际要求是,当用户打开应用程序时,它应该自动从 Excel -> MySQL 数据库表中加载数据。

我不知道将数据从 excel 导入 MySQL 表。

谁能帮我解决这个问题?

提前致谢。

【问题讨论】:

    标签: mysql excel import export mysqldump


    【解决方案1】:

    是的,您可以使用 PHP 从 excel 生成 mysql 查询。

    error_reporting(E_ALL ^ E_NOTICE);
    require_once 'query_generator.php';
    $data = new Spreadsheet_Excel_Reader("example.xls");
    

    输出:

    INSERT INTO table_name VALUES ( '101', 'Narendra Modi', 'Cabinet Ministers', 'Personnel, Public Grievances and Pensions, Department of Atomic Energy, Department of Space, All important policy issues and all other portfolios not allocated to any Minister', 'NULL', 'NULL', 'NULL');
    INSERT INTO table_name VALUES ( '102', 'Rajnath Singh', 'Cabinet Ministers', 'Home Affairs', 'NULL', 'NULL', 'NULL');
    INSERT INTO table_name VALUES ( '103', 'Sushma Swaraj', 'Cabinet Ministers', 'External Affairs, Overseas Indian Affairs', 'NULL', 'NULL', 'NULL');
    INSERT INTO table_name VALUES ( '104', 'Arun Jaitley', 'Cabinet Ministers', 'Finance, Corporate Affairs and Defence', 'NULL', 'NULL', 'NULL');
    ......
    

    我已经编写了 PHP 代码,通过单击为我们的生产系统从 excel 生成所有查询

    【讨论】:

      【解决方案2】:

      为每日负载创建一个 dummyTable

      在开始之前清除它

      将您的 Excel 保存在相同的列结构中 作为 csv 格式的 dummyTable,逗号分隔

      运行:

      LOAD DATA INFILE '/path/theFile1.csv' 
      INTO TABLE dummyTable
          FIELDS TERMINATED BY ',' 
                 OPTIONALLY ENCLOSED BY '"'
          LINES  TERMINATED BY '\n'
      

      继续使用它(dummyTable)。清除它。

      【讨论】:

      • 非常感谢。这个对我有用。但它仅适用于 csv。不适用于 xlsx。我需要在代码中修改什么以使其适用于 xlsx 文件?
      • 可以是那个文件或文本文件。从文本格式的角度来看,重要的是内容,而不是文件扩展名
      • 是的,正确。但是我需要为由终止和可选包含的字段提供什么值?我尝试了以下。但它正在将垃圾数据加载到表中。 LOAD DATA INFILE 'C:\dummy/dummy.xlsx' INTO TABLE dummy FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n'
      • Cs 我需要查看要导入的文件的几行才能了解为什么会出现垃圾和表结构
      • 我真的无法理解为什么我会得到垃圾值。我正在使用上面相同的代码。请您检查一次。我也怀疑以下内容。 xlsx 文件不会以“,”结尾。在处理 xlsx 时我需要更改以下这些值吗?由 ',' 终止的字段可选地由 '"' 封闭
      【解决方案3】:

      您可以使用 MySQL LOAD DATA INFILE 命令从 excel 导入数据..

      为了自动化,您必须编写一个函数来在加载时运行 MySQL 命令。

      【讨论】:

      • 非常感谢。这个对我有用。但它仅适用于 csv。不适用于 xlsx。我需要在代码中修改什么以使其适用于 xlsx 文件?
      • 只需在 xlxs 的 load data infile 命令中添加列和行分隔符
      • 对于 xlsx 源,FIELDS TERMINATED BY 和 OPTIONALLY ENCLOSED BY 的值是多少?
      • 你可以试试:FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\'
      • 我已经上传了下面的文件和数据截图。请你检查一下。 drive.google.com/…