import os from openpyxl import load_workbook, Workbook def get_all_worksheet_names(path): worksheet_names = [] for root, dirs, files in os.walk(path): for file in files: if file.endswith('.xlsx'): file_path = os.path.join(root, file) wb = load_workbook(filename=file_path, read_only=True) worksheet_names.extend(wb.sheetnames) return worksheet_names def write_worksheet_names_to_excel(worksheet_names, output_file): wb = Workbook() ws = wb.active for i, name in enumerate(worksheet_names): ws.cell(row=i+1, column=1, value=name) wb.save(output_file) if __name__ == '__main__': path = r'\\pcq-smt-ftp01\smt$\CQ SMT-單板測試課\2.生產組\點檢表\新增資料夾' worksheet_names = get_all_worksheet_names(path) output_file = r'\\pcq-smt-ftp01\smt$\CQ SMT-單板測試課\2.生產組\點檢表\點檢明細\output.xlsx' write_worksheet_names_to_excel(worksheet_names, output_file)在這個代碼中將文件的名字也一起寫入相應數據的前面
时间: 2024-03-01 13:51:04 浏览: 88
如果你想在输出的 Excel 文件中同时记录每个工作表的文件名,可以将 `get_all_worksheet_names()` 函数和 `write_worksheet_names_to_excel()` 函数稍作修改,以便能够记录每个工作表所属的文件名。
你可以在 `get_all_worksheet_names()` 函数中将每个工作表所属的文件名也记录下来,例如将文件名和工作表名组成一个元组,然后将这个元组添加到 `worksheet_names` 列表中。修改后的 `get_all_worksheet_names()` 函数如下所示:
```
def get_all_worksheet_names(path):
worksheet_names = []
for root, dirs, files in os.walk(path):
for file in files:
if file.endswith('.xlsx'):
file_path = os.path.join(root, file)
wb = load_workbook(filename=file_path, read_only=True)
for sheet_name in wb.sheetnames:
worksheet_names.append((file, sheet_name))
return worksheet_names
```
这里将文件名和工作表名组成一个元组 `(file, sheet_name)`,然后将这个元组添加到 `worksheet_names` 列表中。
接下来,在 `write_worksheet_names_to_excel()` 函数中,你需要将每个元组中的文件名和工作表名都写入到 Excel 文件中。可以将每个元组中的文件名和工作表名分别写入到第一列和第二列中。修改后的 `write_worksheet_names_to_excel()` 函数如下所示:
```
def write_worksheet_names_to_excel(worksheet_names, output_file):
wb = Workbook()
ws = wb.active
for i, (file, name) in enumerate(worksheet_names):
ws.cell(row=i+1, column=1, value=file)
ws.cell(row=i+1, column=2, value=name)
wb.save(output_file)
```
这里使用了 `enumerate()` 函数来获取 `worksheet_names` 列表中每个元组的索引 `i` 和值 `(file, name)`。然后,将文件名和工作表名分别写入到第一列和第二列中。保存 Excel 文件的代码没有变化。
这样,就可以在输出的 Excel 文件中同时记录每个工作表的文件名和工作表名。
阅读全文