如何在Xlsxwriter中锁定滚动?

时间:2019-04-24 01:50:18

标签: python xlsxwriter

我希望阻止excel滚动到特定的行/列。我有一张要放入excel的表格,表格范围之外的所有地方都需要无衬线的背景。但是,通过放置未加衬线的背景,这将在滚动条中包括未加衬线的部分。因此,我想防止滚动超出表格的限制。

我尝试了冻结窗格,但是表扩展到了屏幕范围之外(大约50行和列),并且冻结窗格将不允许在整个表中滚动。

1 个答案:

答案 0 :(得分:1)

这取决于您在Excel中的处理方式。

一种方法是隐藏所有未使用的行和列。为了隐藏大量行,您需要使用Excel优化来隐藏行而不设置每一行(大约一百万行)。要在XlsxWriter中执行此操作,可以使用set_default_row()方法。

列不需要此优化,可以使用set_column()隐藏。

这里是一个例子:

import xlsxwriter

workbook = xlsxwriter.Workbook('hide_row_col.xlsx')
worksheet = workbook.add_worksheet()

# Write some data.
worksheet.write('D1', 'Some hidden columns.')
worksheet.write('A8', 'Some hidden rows.')

# Hide all rows without data.
worksheet.set_default_row(hide_unused_rows=True)

# Set the height of empty rows that we do want to display even
# if it is the default height.
for row in range(1, 7):
    worksheet.set_row(row, 15)

# Columns can be hidden explicitly. This doesn't increase the file size.
worksheet.set_column('G:XFD', None, None, {'hidden': True})

workbook.close()

输出:

enter image description here