snowsword7 发表于 2020-3-3 16:34:19

excel如何引用单元格中的内容修改sheet名

import openpyxl
import xlrd

book = xlrd.open_workbook("1.xlsx")

sheet = book.sheet_by_index(0)


for n in range(10):
    print(f"第{n+2}标题内容是: {sheet.cell_value(rowx=0, colx=n+2)}")

book = openpyxl.load_workbook("1.xlsx")

# 创建时,会自动产生一个sheet,通过active获取
sh = book.active

for n in range(10):
    bt ={sheet.cell_value(rowx=0, colx=n+2)}
    print(bt)
    sh1 = book.create_sheet (bt)
   
# 保存文件
book.save('income-1.xlsx')

结果新建的所有sheet名称都叫bt
请问我该如何修改

snowsword7 发表于 2020-3-3 16:35:45

print(bt) 的时候可以正确打出单元格内容

snowsword7 发表于 2020-3-3 16:50:11

我的想法是通过循环语句获得第一行,第三列之后10个单元格的内容
这一步可以print出来
然后赋值为bt
再就引用不到sheet名里去了

txxcat 发表于 2020-3-3 18:21:09

bt赋值时多了一对花括号,变成了集合,去掉后是字符串,就正常了,修改后代码如下:

import openpyxl
import xlrd

book = xlrd.open_workbook("1.xlsx")

sheet = book.sheet_by_index(0)


for n in range(10):
    print(f"第{n+2}标题内容是: {sheet.cell_value(rowx=0, colx=n+2)}")

book = openpyxl.load_workbook("1.xlsx")

# 创建时,会自动产生一个sheet,通过active获取
sh = book.active

for n in range(10):
    bt =sheet.cell_value(rowx=0, colx=n+2)   #去掉花括号,表名必须是字符串
    print(bt)
    sh1 = book.create_sheet (bt)
   
# 保存文件
book.save('income-1.xlsx')

snowsword7 发表于 2020-3-3 21:55:35

txxcat 发表于 2020-3-3 18:21
bt赋值时多了一对花括号,变成了集合,去掉后是字符串,就正常了,修改后代码如下:

万分感谢,不光解决了问题还指出了问题所在,令人茅塞顿开
页: [1]
查看完整版本: excel如何引用单元格中的内容修改sheet名