You can use worksheet.freeze_panes()
to achieve this . There are many options for that method. Read http://xlsxwriter.readthedocs.io/worksheet.html#worksheet-freeze-panes to know how to use the method.
For a quick breakdown, .freeze_panes has two mandatory parameters and two optional ones:
freeze_panes(row, col[, top_row, left_col])
These can be expressed in various ways:
worksheet.freeze_panes(1, 0) # Freeze the first row.
worksheet.freeze_panes('A2') # Same using A1 notation.
worksheet.freeze_panes(0, 1) # Freeze the first column.
worksheet.freeze_panes('B1') # Same using A1 notation.
worksheet.freeze_panes(1, 2) # Freeze first row and first 2 columns.
worksheet.freeze_panes('C2') # Same using A1 notation.
To quote the documentation for the optional parameters:
The parameters top_row and left_col are optional. They are used to specify the top-most or left-most visible row or column in the scrolling region of the panes. For example to freeze the first row and to have the scrolling region begin at row twenty:
worksheet.freeze_panes(1, 0, 20, 0)
worksheet.freeze_panes(1, 1)
and it worked. – Endowment