前言
因为工作需要对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,代码也就这样了,可以根据自己需求修改就行。