前言

因为工作需要对excel进行一个空值检测,刚好最近对python有兴趣,用python编写一个检测的工具。接触python不久,代码比较简陋


一、我的想法

检测的excel表很多,一般都是在一个总的文件夹下的,所以我考虑是整个文件夹进行筛选excel文件,然后每个进行空值检测。因为是小工具所以不打算用GUI。

二、使用步骤

1.引入库

代码如下(示例):

import os
import xlrd

2.读入数据

获取指定类型文件,代码如下(示例):

path = os.path.abspath('.')
file_list = os.listdir(path)
xls_list = []

for i in range(len(file_list)):     # 选择xls文件
    if file_list[i].find('.xls', 0, len(file_list[i])) != -1 or \
            file_list[i].find('.xlsx', 0, len(file_list[i])) != -1:
        xls_list.append(file_list[i])
        print(file_list[i])

空值检测,一般excel表第一行是标题,不进行检测,代码如下(示例):

for dataIndex in range(len(xls_list)):
    data_sheet_name = os.path.join(path, xls_list[dataIndex])
    data_sheet = xlrd.open_workbook(data_sheet_name)

    for i in range(len(data_sheet.sheets())):   # 多工作表
        data_table = data_sheet.sheet_by_index(i)
        row = data_table.nrows
        col = data_table.ncols

        for row_index in range(1, row):
            data_list1 = data_table.row_values(0)  # 第一行标题
            data_list = data_table.row_values(row_index)

            for list_index in range(len(data_list)):  # 标题下数据
                if (data_list[list_index]) is "":
                    print('存在空值:', xls_list[dataIndex], data_sheet.sheet_names()[i], row_index + 1, '行', list_index, '列')

总结

也是第一次写blog,代码也就这样了,可以根据自己需求修改就行。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐