检查Excel工作表是否为空

时间:2017-09-12 06:06:34

标签: python excel pandas openpyxl

我有一张包含多张工作表的Excel工作簿。我需要删除完全为空的工作表,因为我的代码在处理时发现它失败的空白工作表。

os.chdir(path)
list_file=[]
for file in glob.glob("*.xlsx"):
    print(file)
    list_file.append(file)

我列出了所有可用的文件。

AB_list=[s for s in list_file if "India" in s]
CD_list=[s for s in list_file if "Japan" in s]

然后,我按照要求存储文件名列表。现在我需要从这些excel文件中删除空表,然后再将它们移动到数据帧。然后循环读取文件到单个数据帧。

3 个答案:

答案 0 :(得分:1)

您已对openpyxl进行了标记,因此我假设您正在使用它。

# workbook is opened MS Exel sheet opened with openpyxl.Workbook
empty_sheets = []
for name in workbook.get_sheet_names():
    sheet = workbook.get_sheet_by_name(name)
    if not sheet.columns():
        empty_sheets.append(sheet)

map(workbook.remove, empty_sheets)

答案 1 :(得分:0)

ws.max_rowws.max_column应该为您提供最后一次使用的单元格位置。基于此,您可以确定工作表是否为空。同时检查这是否适合ws.calculate_dimension(),这应该返回一个范围。

所有功能均来自您已熟悉的openpyxl

答案 2 :(得分:0)

您可以轻松地使用我也使用过的大熊猫。     here

和代码看起来像

import pandas as pd

df = pd.read_csv(filename)# 或

pd.read_excel(filename)用于xls文件 df.empty