首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用openpyxl返回列中的第一个和最后一个值,并将excel文件的标题更改为它们?

如何使用openpyxl返回列中的第一个和最后一个值,并将excel文件的标题更改为它们?
EN

Stack Overflow用户
提问于 2019-06-20 23:23:37
回答 2查看 195关注 0票数 -1

我正在尝试更改五个文件的标题,以显示该文件中由"_“分隔的列中的第一个和最后一个值

例如,在一列中,如果我的值为0001,0002,0003,0004,我希望找到第一个和最后一个值,并将文件的标题更改为0001_0004

代码语言:javascript
复制
files=os.listdir(os.getcwd())
for file in files:
if file.endswith('.xlsx'):
    print(file)
    try: 
        wb=openpyxl.load_workbook(os.path.join(os.getcwd(),file))
        print('reading workbook'+file)
        ws=wb['Sheet1'] 
        for row in range(7, ws.max_row+1):
            cell = ws.cell(row = row, column = 7)
            #code to change name
            wb.save(os.path.join(os.getcwd(),file))
        print('file title changed') 
    except Exception as e:
        print(e)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-20 23:37:57

代码语言:javascript
复制
files=os.listdir(os.getcwd())
all_xls = []
for f in files:
   if f.endswith('.xlsx'):
       all_xls.append(f.replace('.xls', '')

all_xls.sort()
first_file = all_xls[0]
last_file = all_xls[-1]
#Do your renaming using os.rename('src', 'dest')

这只是一个我能想到的快速解决方案,它不是最优解决方案,您可以调整它以更快地获得所需的结果。

希望这能有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2019-06-26 23:17:09

代码语言:javascript
复制
path = os.getcwd()
files = os.listdir(os.getcwd())
for filename in files:
    if filename.endswith('.xlsx'):
        print(filename)
        wb = openpyxl.load_workbook(os.path.join(os.getcwd(),filename), data_only = True)
        ws = wb['Sheet1']
        final = ws.max_row
        original_file = str(filename)
        cell = ws['G7'].value
        filenamep1 = cell
        cell = ws.cell(row = final, column = 7).value
        filenamep2 = cell
        os.rename(original_file, path + '\\' + filenamep1 + '_' + filenamep2 + '_' + 
        original_file)
print("All files renamed")

这就是我最终用来重命名该文件的内容

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56689241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档