我想制作一个脚本,将特定文本写入文件夹内每个excel文件的A1单元格。我不确定如何让Python一步一步地打开每个文件,对A1进行更改,然后覆盖保存原始文件。
import os
import openpyxl
os.chdir('C:/Users/jdal/Downloads/excelWorkdir')
folderList = os.listdir()
for file in in os.walk():
for name in file:
if name.endswith(".xlsx" and ".xls")
wb = openpyxl.load_workbook()
sheet = wb.get_sheet_by_name('Sheet1')
sheet['A1'] = 'input whatever here!'
sheet['A1'].value
wb.save()
答案 0 :(得分:0)
我在您的代码中看到以下错误:
您在.endswith
中有一个错误,应该是
name.endswith((".xlsx",".xls"))
即它必须以tuple
允许的结尾作为结尾。
您的if
末尾缺少:
,并且您的缩进似乎已损坏。
您应该为.load_workbook
传递一个参数,为.save
传递一个参数,即要读取/写入的文件名。
答案 1 :(得分:0)
我将遍历该文件夹,并使用熊猫将文件读取为临时数据帧。从那里,它们很容易操作。
假设您在相关目录中:
import pandas as pd
import os
files = os.listdir()
for i in range(len(files)):
if files[i].endswith('.csv'):
# Store file name for future replacement
name = str(files[i])
# Save file as dataframe and edit cell
df = pd.read_csv(files[i])
df.iloc[0,0] = 'changed value'
# Replace file with df
df.to_csv(name, index=False)