如何在Python中使用xlrd将Excel中的空单元格读取为数字零值

问题描述 投票:0回答:1

我从不同的单元格导入值,并将它们附加到 50 个 Excel 工作表(时间序列)的列中。我需要在阅读它们时将它们相加,因为我只需要聚合值。但是,当单元格没有值时,它会将其读取为字符串“”,并且无法求和。 如何将空值读取为零值以便能够对它们求和? 我正在尝试使用 .replace('',0) 函数,但出现此错误: 类型错误:replace() 参数 2 必须是 str,而不是 int

enter image description here

workbook = xlrd.open_workbook("xxx.xls")
sheets = workbook.sheet_names()

tr_elect1 = []
for sheet_name in sheets:
    sh = workbook.sheet_by_name(sheet_name)
    tr_elect1.append(sh.cell(13, 1).value.replace('',0) + sh.cell(13, 2).value).replace('',0)

tr_elect1
python excel cell numeric xlrd
1个回答
0
投票

您可以定义函数,返回单元格的

0
为空,否则其实际值:

def cell_value(x, y):
    v = sh.cell(x, y).value
    if v:
        return v
    return 0


workbook = xlrd.open_workbook("xxx.xls")
sheets = workbook.sheet_names()

tr_elect1 = []
for sheet_name in sheets:
    sh = workbook.sheet_by_name(sheet_name)
    tr_elect1.append(cell_value(13, 1) + cell_value(13, 2))
© www.soinside.com 2019 - 2024. All rights reserved.