openpyxl - 从输入文件中读取第三行

时间:2017-07-18 02:35:52

标签: python openpyxl

输入文件格式已更改。 原点输入文件

   A      B      C
1 Tom    Red    True
2 Tom    Red    False
3 Marry  Green  False
4 Marry  Green  True
5 Babara Red    False

更改了输入文件

   A      B      C
1 Title
2 Name  Color  Result 
3 Tom    Red    True
4 Tom    Red    False
5 Marry  Green  False
6 Marry  Green  True
7 Babara Red    False

现在,我想从输入文件的第3行读取。

如何修改下面的代码?

import collections
from openpyxl import load_workbook
wb1 = load_workbook('test.xlsx')
ws1 = wb1['test']
a_dict = collections.defaultdict(list)
for row in ws1.rows:
    a_dict[row[0].value+','+row[1].value].append(str(row[2].value))

wb2 = Workbook(write_only=True)
ws2 = wb2.create_sheet()
for key,value in a_dict.items():
    temp = key.split(',')
    temp.append(','.join(value))
    ws2.append(temp)
wb2.save('new_test.xlsx') 

输出文件在

之下
   A      B        Result
1 Tom    Red    True,False
2 Marry  Green  False,True
3 Babara Red    False

2 个答案:

答案 0 :(得分:1)

通过n-1访问集合的任何元素,其中n是列表中的位置(因为我们从0开始计算列表)。如果ws_in.rows是生成器,则必须将其强制转换为列表,因此请list(ws_in.rows)[2]访问第三行。

答案 1 :(得分:0)

您可以使用${file1}控制要阅读的行如果您想从第三行阅读,只需设置ws.iter_rows()