使用python,打开excel,将文件中所有sheet内的每一rows的第18、19、20columns的数值相加为0的整行删除
时间: 2023-05-20 21:01:49 浏览: 77
可以使用 pandas 库来实现这个功能,具体代码如下:
```python
import pandas as pd
# 读取 Excel 文件
df = pd.read_excel('your_excel_file.xlsx', sheet_name=None)
# 遍历每个 sheet
for sheet_name, sheet_data in df.items():
# 将第 18、19、20 列相加
sum_col = sheet_data.iloc[:, 17:20].sum(axis=1)
# 找到和为 0 的行
zero_sum_rows = sheet_data[sum_col == 0]
# 删除这些行
sheet_data.drop(zero_sum_rows.index, inplace=True)
# 将修改后的数据保存回 Excel 文件
with pd.ExcelWriter('your_excel_file.xlsx') as writer:
for sheet_name, sheet_data in df.items():
sheet_data.to_excel(writer, sheet_name=sheet_name, index=False)
```
这段代码会读取指定的 Excel 文件,遍历每个 sheet,将每个 sheet 内的第 18、19、20 列相加,找到和为 0 的行,然后删除这些行。最后将修改后的数据保存回 Excel 文件。
相关问题
使用python的openpyxl库,打开选中的excel,遍历sheet内每一行的S、T、U列的数据的绝对值相加,若数字相加为0,则删除这一行
可以使用以下代码实现:
```python
import openpyxl
# 打开选中的excel文件
workbook = openpyxl.load_workbook('selected_excel.xlsx')
# 遍历每个sheet
for sheet in workbook.worksheets:
# 遍历每一行
for row in sheet.iter_rows():
# 获取S、T、U列的值
s_value = row[18].value
t_value = row[19].value
u_value = row[20].value
# 计算绝对值之和
sum_abs = abs(s_value) + abs(t_value) + abs(u_value)
# 如果为0,则删除这一行
if sum_abs == 0:
sheet.delete_rows(row[0].row, 1)
# 保存修改后的excel文件
workbook.save('selected_excel.xlsx')
```
注意:需要根据实际情况修改列的索引值。
使用python的openpyxl库,打开选中的excel,将每个sheet的所有行复制到1个新excel的同1个sheet内,将sheet命名为"有色台账汇总"
可以使用以下代码实现:
```python
import openpyxl
# 打开选中的excel文件
wb = openpyxl.load_workbook('selected_excel.xlsx')
# 创建新的excel文件
new_wb = openpyxl.Workbook()
# 获取所有sheet的名称
sheet_names = wb.sheetnames
# 遍历每个sheet
for sheet_name in sheet_names:
# 获取当前sheet
sheet = wb[sheet_name]
# 在新excel中创建同名sheet
new_sheet = new_wb.create_sheet(sheet_name)
# 遍历每行数据
for row in sheet.iter_rows():
# 将每行数据复制到新sheet中
new_sheet.append([cell.value for cell in row])
# 将新excel保存为"有色台账汇总.xlsx"
new_wb.save('有色台账汇总.xlsx')
```
注意:需要将代码中的"selected_excel.xlsx"替换为你选中的excel文件的路径。
阅读全文