我正在使用 python 包 xlrd 和 xlwt 来使用 python 从 excel 电子表格中读取和写入。我不知道如何编写代码来解决我的问题。
我的第一个电子表格中有一个列,其中包含 2 个字母缩写形式的州名和全名(有些全小写,有些首字母大写)。我正在尝试编写另一张纸,读取第一张纸上的名称,查看它们是否与第二张纸上的名称匹配,然后将它们作为第二张纸上的州缩写写到第三张纸上。这有意义吗?
无论如何,如果不制作五十个单独的“for”循环,我不知道该怎么做。到目前为止,这是我所拥有的,但运行它写了一个空白的第一列。
import xlrd #reads
import xlwt #writes
input_book = xlrd.open_workbook("file_path_here")
input_sheet = input_book.sheet_by_index(0)
state_book = xlrd.open_workbook("file_path2_here")
state_sheet = state_book.sheet_by_index(0)
output_book = xlwt.Workbook()
output_sheet = output_book.add_sheet('test')
for row in range(input_sheet.nrows):
state = input_sheet.cell_value(row, colx=1) #state names are in col 1
Value1 =input_sheet.cell_value(row, colx=2) #data being left unchanged, just copied to output sheet
Value2 =input_sheet.cell_value(row, colx=3)
Value3 =input_sheet.cell_value(row, colx=4)
for name in range(state_sheet.nrows): #a sheet with state names in col 0, state abrevs in col 1
state_name = state_sheet.cell_value(name,colx=0)
state_abrev = state_sheet.cell_value(name, colx=1)
if state.lower() == state_name:
output_sheet.write(row,0,state_abrev)
output_sheet.write(row,1,Value1)
output_sheet.write(row,2,Value2)
output_sheet.write(row,3,Value3)
print ('done')
output_book.save('output.xls')