Based on the comment: "each sublist with have its own sheet", I think you can do this quite simply with a nested loop. I'm familiar with xlwt but not gspread, so I'll demonstrate with xlwt syntax:
# assume worksheet is an xlwt worksheet object
lst = [['a','b','c'],['aa1','bb1','cc1'],['aaa2','bbb2','ccc2']]
for (rownum, rowlist) in enumerate(lst):
for (colnum, value) in enumerate(rowlist):
worksheet.write(rownum, colnum, value)
Both enumerate
and xlwt
are 0-indexed (at least in the Python interface) so you don't need to change that. If gspread is 1-indexed (as the Excel human interface is), adding 1 to rownum and/or colnum as needed should correct that.
It sounds like you'll have more than one worksheet, depending on the number of two-dimensional sublists in your main list. Again, you can nest for that:
wb = xlwt.Workbook()
for (sheet_number, sublist) in enumerate(lst):
ws = wb.add_sheet('sheet_%s', sheet_number + 1)
for (rownum, rowlist) in enumerate(sublist):
for (colnum, value) in enumerate(rowlist):
ws.write(rownum, colnum, value)