如何将文件夹中的所有.csv文件转换为一个包含多个工作表标签的单一.xlsx文件(每个.csv一个标签)?

3 投票
2 回答
4181 浏览
提问于 2025-04-19 23:29

我有一个文件夹,里面大约有20个.csv文件。我想把这些文件合并成一个.xlsx文件(也就是Excel文件),并且每个.csv文件对应一个工作表标签。

有没有人能推荐一个简单的脚本,让用户只需要指定两个东西:一个是包含.csv文件的文件夹,另一个是新.xlsx文件的保存路径?

我在一个讨论串里找到了同样的问题,但没有找到我能理解的答案:

https://superuser.com/questions/742454/how-to-convert-many-csv-files-into-1-xlsx-file-with-multiple-tabs?rq=1

谢谢大家!

2 个回答

1

我看到你在问题中标记了Python,但还有一个选择是使用Power Query(这是微软提供的一个免费的Excel插件),它有一个“获取外部数据”->“从文件夹”选项。

7

下面这段代码的作用是接收一个文件夹的名字(这个文件夹里有多个csv文件),然后把这些csv文件合并成一个xls文件,里面包含多个工作表。

import xlwt, csv, os

csv_folder = "Output/"

book = xlwt.Workbook()
for fil in os.listdir(csv_folder):
    sheet = book.add_sheet(fil[:-4])
    with open(csv_folder + fil) as filname:
        reader = csv.reader(filname)
        i = 0
        for row in reader:
            for j, each in enumerate(row):
                sheet.write(i, j, each)
            i += 1

book.save("Output.xls")

撰写回答