【问题标题】:extract certain cell's value from each excel sheet using python使用python从每个excel表中提取某些单元格的值
【发布时间】:2017-06-10 03:49:15
【问题描述】:

因此,30 张 excel 表 - 每月费用,2 列费用 - 1 列 exp.desc,另一列是值:

C2 单元格:费用说明 D2 单元格:金额

C3 单元格:Salary D3 单元格:$4300

C4 单元:办公产品 D4 单元:350 美元

C5 单元格:银行收费 D5 单元格:43 美元等

所以,我可以使用以下代码访问这些单元格:

工作表名称为“1”,因此我将工作表分配给“工作表 1”: sheet1 = workbook.get_sheet_by_name('1')

访问单元格:

exp1name = sheet1['C3'].value

exp1value = str(sheet1['D3'].value)

exp2name....等

exp2value...等(与第一个相同)

但我不想在一个月内的每一天为每张纸做 30 或 31 次,我需要循环这个过程。

循环应该这样做: 在每张纸上循环两列,直到 sheet31 并打印值

这是专业人士的非常基本的代码,我尝试了很多次但无法做到,请帮助。提前致谢!

【问题讨论】:

    标签: python excel


    【解决方案1】:

    这里有一些伪代码可以帮助您入门:

    for i in range(1, 31):
        sheet = workbook.get_sheet_by_name(str(i))
        print(sheet['C3'].value)
        print(str(sheet['D3'].value))
        print()
    

    最后一个打印用于在工作表之间添加一个空白行。

    【讨论】:

    • 谢谢你是最棒的
    【解决方案2】:

    所以如果我理解正确的话,您想将所有数据存储到变量中吗?你不能让变量都同名,所以我会使用字典,每天作为键,值包含一个包含所有变量的字典:

    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
    

    因此,如果您想获取每月第四天的费用:

    expences_4th_day_of_the_month = month['sheet4']['expences']
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多