使用python的openpyxl,选择excel文件,删除名称为"2023年 铝内贸"的sheet中的第1列、第5列、第6列、第8~10列、第12列、第14~16列、第20列、第21列、第23~列、第28列、第30~38列,删除名称为" 2023年信达诺 铝"的sheet中的第1列、第2列、第8列、第11列、第12列、第13列、第20列、第21列、第23~列、第28列、第30~38列保存文件在桌面,命名为"数据清理"
时间: 2023-05-17 11:04:10 浏览: 96
好的,以下是使用openpyxl删除指定列并保存文件的Python代码:
```python
import openpyxl
import os
# 打开Excel文件
filename = "path/to/excel/file.xlsx"
wb = openpyxl.load_workbook(filename)
# 删除指定列
sheets_to_delete = ["2023年 铝内贸", "2023年信达诺 铝"]
columns_to_delete = [
[1, 5, 6, 8, 9, 10, 12, 14, 15, 16, 20, 21, 23, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38],
[1, 2, 8, 11, 12, 13, 20, 21, 23, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38]
]
for i, sheet_name in enumerate(sheets_to_delete):
sheet = wb[sheet_name]
for col_index in sorted(columns_to_delete[i], reverse=True):
sheet.delete_cols(col_index)
# 保存文件
desktop_path = os.path.join(os.path.expanduser("~"), "Desktop")
output_filename = os.path.join(desktop_path, "数据清理.xlsx")
wb.save(output_filename)
```
请注意,这段代码假设Excel文件中存在名为"2023年 铝内贸"和"2023年信达诺 铝"的工作表,并且这些工作表中的列数足够多,以至于删除指定列不会导致任何列被删除。如果这些条件不满足,代码可能会引发异常。
阅读全文