所以,30张excel表 - 每月费用2列费用 - 1列exp.desc,另一列是值:
C2单元格:费用说明D2单元格:金额
C3细胞:工资D3细胞:4300美元
C4电池:办公用品D4电池:350美元
C5格:银行收费D5格:43美元等。
所以,我可以使用以下代码访问这些单元格:
工作表名称为“1”,因此我将工作表分配给“sheet1”: sheet1 = workbook.get_sheet_by_name('1')
访问单元格:
exp1name = sheet1 ['C3']。value
exp1value = str(sheet1 ['D3']。value)
exp2name ....等
exp2value ... etc(与第一个相同)
但我不想在一个月内每天为每张纸做30或31次,我需要循环这个过程。
循环应该做: 在每张纸上循环两列,直到sheet31并打印值
对于专业人士来说,这是非常基本的代码,我尝试了很多次却无法做到,请帮忙。提前谢谢!
答案 0 :(得分:0)
这里有一些可以帮助你入门的伪代码:
for i in range(1, 31):
sheet = workbook.get_sheet_by_name(str(i))
print(sheet['C3'].value)
print(str(sheet['D3'].value))
print()
最后一次打印用于在工作表之间添加空行。
答案 1 :(得分:0)
因此,如果我理解正确,您希望将所有数据存储到变量中吗?你不能使用相同的名称制作变量,所以我会使用字典,每天作为一个键,该值包含一个包含所有变量的字典:
month = {} # dictionary
for i in range (1,31): # For each day
sheet_i = workbook.get_sheet_by_name(str(i))
day = {}
for j in range (2,5): # Depend on number of rows:
day[sheet_i['C'+str(j)].value] = sheet_i['D'+str(j)].value
month['sheet' + str(i)] = day
因此,如果您想获得本月第4天的费用:
expences_4th_day_of_the_month = month['sheet4']['expences']