编辑现有xlsx文件时,列设置为隐藏

时间:2015-04-15 21:32:42

标签: python python-2.7 openpyxl

我正在使用openpyxl库编辑当前的template.xlsx,但是当向其中一个工作表添加新值时,列会被隐藏

workbook = xlsx.load_workbook(filename='template.xlsx')
ws  = workbook.get_sheet_by_name('DB')

for row in DATA_FROM_DATABASE:
  obj = [row.year, row.date, row.product, row.amount]

  for j in range(len(obj)):
    ws.cell(column=j+1, row=i).value = obj[j]

workbook.save('out.xlsx')

在文件out.xlsx上,工作表数据库中len(obj)的第1列设置为隐藏,第一个工作表中的第一列。有没有办法解决这个问题或将所有列设置回可见?

2 个答案:

答案 0 :(得分:2)

您可以使用相关的ColumnDimension对象隐藏列:

col_d = ws.column_dimensions['A']
col_d.hidden = False

答案 1 :(得分:1)

使用openpyxl 2.2.6时遇到了同样的问题。

在新创建的文件中,由于不确定的原因隐藏了列。

但是当我将openpyxl升级到2.3.3时,问题就解决了。

因此,如果您仍然遇到此问题,可以尝试将模块升级到最新版本。