我想使用列和行标题的串联作为键来构建一个dict。在此格式中,单元格(0,0)为空白
我希望脚本从第二列标题开始,将其字符串值连接到第一列中的第二行值,然后连接第二行,依此类推,直到没有更多行为止。如果列1 row [i]中的相应单元格值为空,则应跳过创建密钥。如果它不是空白,则应该使用相应的单元格值作为其值。
因此,不会创建0.5_20.00;和.05_32.00:9.00将被创建
一旦到达最后一行,它应该移动到第三列(第[2]栏)并执行相同的操作,直到没有更多的列。
import xlrd
#make dict from excel workbook, size and frequency
serParams = {}
wb = xlrd.open_workbook(r"S:\Shared\Service_Levels.xlsx")
sh = wb.sheet_by_index(0)
# Get row range value
row_range_value = 0
for i in sh.col(0):
row_range_value += 1
row_range_value = row_range_value -1
print row_range_value
# Get column range value
column_range_value = 0
for i in sh.row(0):
column_range_value += 1
column_range_value = column_range_value - 1
print column_range_value
# build the dict by using concatenated column and row headers as keys and
# corresponding values as key value
for i in range(0,column_range_value,1):
for j in range(0,row_range_value,1):
if sh.cell(i+1,j+1).value != '':
key = str(sh.cell(i+1,j).value) +"_"+str(sh.cell(i,j+1).value)
serParams[key] = sh.cell(i+1, j+1).value
我的数据格式可能导致索引错误,因为一旦循环到达表的末尾,范围超过了i + 1和j + 1的表数据?我试图通过从范围值中减去1来解决这个问题,但我继续得到索引错误。