繁体   English   中英

Openpyxl和隐藏/取消隐藏的Excel工作表

[英]Openpyxl and Hidden/Unhidden Excel Worksheets

我有以下代码从制表符分隔的文本文件中读取数据,然后将其写入现有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上提交功能请求。

[UPDATE]

该功能现已推出:

ws.sheet_state = 'hidden'

或者实际上在你的特定情况下xls_sheet.sheet_state = 'hidden'

查理克拉克的评论是正确的:

ws.sheet_state = 'hidden'

这对我有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM