【发布时间】:2022-01-20 22:12:26
【问题描述】:
我正在尝试仅读取 excel 工作表中的非隐藏列并使用相同的数据框创建数据框。使用 pandas 和 openpyxl。
Openpyxl 在使用 column_dimension 时没有找到连续的隐藏列。如果创建隐藏状态有分组,则只返回第一个隐藏列。 例如,如果列 E 和 F 作为一个组被隐藏,则 E 已隐藏设置为 true,并且列列表中缺少 F。 因此,我所做的是获取工作表中所有可能的列和所有列之间的差异,从而得到丢失的隐藏列。然后将其与具有隐藏状态的那些连接以获得“所有”隐藏列。
但是发生的事情是一些不在 column_dimensions 中的列在实际的 Excel 工作表中没有显示为隐藏。不知道如何仅获取真正的“隐藏”列的列表。
这是我写的代码
# reading the file and worksheet
wb = load_workbook(path, read_only = False)
ws = wb['Overview']
mx_col = ws.max_column
col_indx =[]
for i in range(1,mx_col+1):
num = get_column_letter(i)
col_indx.append(num)
hid_cols = []
col_vals = []
for col, dimension in ws.column_dimensions.items():
col_vals.append(col)
if dimension.hidden:
hid_cols.append(col)
diff = list(set(col_indx) - set(col_vals))
hidden_columns = diff+hid_cols
【问题讨论】:
-
对于分组列,您可以检查分组列的范围。但是,如果您只对数据感兴趣,则无需执行任何操作。
标签: python excel pandas openpyxl