gpt4 book ai didi

python - 将多个 .xls 文件添加到单个 .xls 文件,使用文件名命名选项卡

转载 作者:太空宇宙 更新时间:2023-11-03 12:00:44 25 4
gpt4 key购买 nike

我有多个目录,每个目录包含任意数量的 .xls 文件。我想获取任何给定目录中的文件并将它们合并到一个 .xls 文件中,使用文件名作为选项卡名称。例如,如果有文件 NAME.xls、AGE.xls、LOCATION.xls,我想将它们合并到一个新文件中,其中 NAME.xls 中的数据位于名为 NAME 的选项卡上,AGE.xls 中的数据位于一个名为 AGE 的选项卡等等。每个源 .xls 文件只有一列数据,没有标题。这是我到目前为止所拥有的,而且它没有用。任何帮助将不胜感激(我是 Python 的新手,我以前从来没有做过这样的事情)。

wkbk = xlwt.Workbook()

xlsfiles = glob.glob(os.path.join(path, "*.xls"))
onlyfiles = [f for f in listdir(path) if isfile(join(path, f))]
tabNames = []
for OF in onlyfiles:
if str(OF)[-4:] == ".xls":
sheetName = str(OF)[:-4]
tabNames.append(sheetName)
else:
pass

for TN in tabNames:
outsheet = wkbk.add_sheet(str(TN))
data = pd.read_excel(path + "\\" + TN + ".xls", sheet_name="data")
data.to_excel(path + "\\" + "Combined" + ".xls", sheet_name = str(TN))

最佳答案

这是一个小辅助函数 - 它支持 .xls.xlsx 文件:

import pandas as pd
try:
from pathlib import Path
except ImportError: # Python 2
from pathlib2 import Path


def merge_excel_files(dir_name, out_filename='result.xlsx', **kwargs):
p = Path(dir_name)
with pd.ExcelWriter(out_filename) as xls:
_ = [pd.read_excel(f, header=None, **kwargs)
.to_excel(xls, sheet_name=f.stem, index=False, header=None)
for f in p.glob('*.xls*')]

用法:

merge_excel_files(r'D:\temp\xls_directory', 'd:/temp/out.xls')
merge_excel_files(r'D:\temp\xlsx_directory', 'd:/temp/out.xlsx')

关于python - 将多个 .xls 文件添加到单个 .xls 文件,使用文件名命名选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49138153/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com