python读取佛山的excel表格内所有sheet,指定‘区’,‘省’列数据不删除,如果读取的数据没有‘区’则跳过不用保留,其它列获取最后一行第一列之后的数据,若数值低于90则删除这列数据
时间: 2024-05-08 21:16:16 浏览: 149
以下是一个实现上述要求的Python代码:
```python
import openpyxl
# 读取Excel文件
workbook = openpyxl.load_workbook('佛山.xlsx')
# 遍历所有sheet
for sheet in workbook:
# 获取当前sheet的最大行数和最大列数
max_row = sheet.max_row
max_col = sheet.max_column
# 获取“区”和“省”列的列号
district_col = None
province_col = None
for col in range(1, max_col + 1):
if sheet.cell(row=1, column=col).value == '区':
district_col = col
elif sheet.cell(row=1, column=col).value == '省':
province_col = col
# 如果当前sheet没有“区”列,则跳过
if district_col is None:
continue
# 遍历每一列数据
for col in range(1, max_col + 1):
# 如果当前列是“区”或“省”列,则跳过
if col == district_col or col == province_col:
continue
# 获取当前列的最后一行数据
last_row_data = None
for row in range(max_row, 1, -1):
if sheet.cell(row=row, column=col).value is not None:
last_row_data = sheet.cell(row=row, column=col).value
break
# 如果当前列的数值低于90,则删除这列数据
if last_row_data is not None and last_row_data < 90:
sheet.delete_cols(col)
```
这个代码中,我们首先使用`openpyxl`模块读取了一个名为“佛山.xlsx”的Excel文件。然后,我们遍历了这个文件中的每一个sheet,对于每一个sheet,我们首先获取了最大行数和最大列数,然后在第一行中查找“区”和“省”列的列号。如果当前sheet没有“区”列,则跳过。接下来,我们遍历每一列数据,获取当前列的最后一行数据,并且如果这个数据低于90,则删除这列数据。最后,我们得到了一个处理完毕的Excel文件。
阅读全文