[英]How to create a tabular data structure from a list of sublists with Gpread or XLWT?
如何使用GSpread或XLWT從此子列表列表創建表格數據結構,其中索引0的每個項目在第一列中,索引1的每個項目在第二列中,依此類推?
例如,我想將以下列表中的所有a放入column1,將所有b放入column2,依此類推。換句話說,我只想要一個值到一個單元格,所以我想在第一列的第一個單元格,第一列的第二個單元格中的“ aa1”,第一列的第三個單元格中的“ aa2”,依此類推。
lst = [[['a','b','c'],['aa1','bb1','cc1'],['aaa2','bbb2','ccc2']],[['a','b','c'],['aa1','bb1','cc1'],['aaa2','bbb2','ccc2']]]
這就是我使用的for循環,但是我想知道是否存在其他方法可以創建一個for循環,而不必為每個額外的列手動創建for循環。
gc = gspread.login('username', 'password')
sheet = gc.open("Curalate").sheet1
row = 1
for subsublist in lst[0]:
sheet.update_cell(1,row,subsublist[0])
row = row + 1
row = 1
for subsublist in lst[0]:
sheet.update_cell(2,row,subsublist[1])
row = row + 1
row = 1
for subsublist in lst[0]:
sheet.update_cell(,row,subsublist[2])
row = row + 13
另外,如果這是xlwt,則完全相同,只是sheet.udpate_cell將被sheet.write替換,並且它是有組織的sheet.write(row,column,datapoint)而不是(column,row,datapoint)。
基於注釋:“每個子列表都有自己的工作表”,我認為您可以使用嵌套循環非常簡單地完成此操作。 我熟悉xlwt但不熟悉gspread,因此我將以xlwt語法進行演示:
# 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)
enumerate
和xlwt
都是0索引的(至少在Python接口中),因此您無需更改它。 如果gspread是1索引的(就像Excel人機界面一樣),則根據需要在rownum和/或colnum中添加1應該可以解決該問題。
聽起來您將有多個工作表,具體取決於主列表中二維子列表的數量。 同樣,您可以為此嵌套:
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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.