使用查询将多个 excel 文件摄取到 MySQL

Posted

技术标签:

【中文标题】使用查询将多个 excel 文件摄取到 MySQL【英文标题】:Ingest multiple excel files to MySQL using query 【发布时间】:2020-10-13 17:31:24 【问题描述】:

我正在尝试将数据从 excel 文件加载到 mysql 中的表中。 .xlsx 格式的 excel 文件有 400 个。

我已成功将一个文件提取到表中,但问题是涉及手动将 excel 文件转换为 csv 文件,将其保存在某个位置,然后运行查询以使用 LOAD LOCAL INFILE 加载。如何处理其余文件。

如何在文件夹中加载所有 400 个 .xlsx 文件,而不需要手动将它们转换为 .csv 文件,然后对它们逐个运行摄取查询。MySql 中有没有办法做到这一点。例如,遍历所有文件并将它们摄取到表中的任何 FOR 循环。

【问题讨论】:

【参考方案1】:

尝试使用 in2csv 将您的 XLSX 批量转换为 CSV,如在 csvkit 中找到的那样。

## single file
in2csv file.xlsx > file.csv

## multiple files
for file in *.xlsx; do in2csv $file > $file.csv; done

然后使用LOAD LOCAL INFILE...将数据导入MySQL

从加载多个 CSV,使用for file in *.csv; do... 或查看How to Import Multiple csv files into a MySQL Database。

【讨论】:

以上是关于使用查询将多个 excel 文件摄取到 MySQL的主要内容,如果未能解决你的问题,请参考以下文章

使用EasyExcel将MySQL中查询出来的数据下载到Excel文件中

使用查询将数据从 EXCEL/CSV 加载到 MYSQL?

如何将多个excel文件合并?

MYSQL怎么批量导入多个excel文件,字段都是对应的

oracle sql (toad) - 执行多个查询,保存到单个 excel 文件

Snowpipe 自动摄取配置看起来会触发所有管道