我有以下代码从制表符分隔的文本文件中读取数据,然后将其写入现有 Excel 工作簿中的指定工作表。变量“workbook”、“write_sheet”、“text_file”由用户输入
tab_reader = csv.reader(text_file, delimiter='\t')
xls_book = openpyxl.load_workbook(filename=workbook)
sheet_names = xls_book.get_sheet_names()
xls_sheet = xls_book.get_sheet_by_name(write_sheet)
for row_index, row in enumerate(tab_reader):
number = 0
col_number = first_col
while number < num_cols:
cell_tmp = xls_sheet.cell(row = row_index, column = col_number)
cell_tmp.value = row[number]
number += 1
col_number += 1
xls_book.save(workbook)
但是,当我在其中“工作表”是隐藏选项卡的预先存在的“工作簿”上运行此代码时,输出会取消隐藏该选项卡。我认为原因是因为 openpyxl 没有修改文件,而是完全创建了一个新文件。有没有简单的方法告诉python检查工作表是否隐藏,然后根据是否满足条件输出隐藏或未隐藏的工作表?
谢谢!
最佳答案
我们目前不支持在 openpyxl 中隐藏工作表,因此这在读取文件时会被忽略,因此在保存文件时会丢失。我认为添加它应该不会太难。请在 Bitbucket 上提交功能请求。
[更新]
该功能现已可用:
ws.sheet_state = 'hidden'
或者实际上 xls_sheet.sheet_state = 'hidden'
在您的特定情况下。
关于python - Openpyxl 和隐藏/未隐藏的 Excel 工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23157643/