python 删除excel非连续列
时间: 2023-08-08 12:13:42 浏览: 165
python 删除列表里所有空格项的方法总结
你可以使用 openpyxl 库来删除 Excel 表格中的非连续列。下面是一个示例代码:
```python
from openpyxl import load_workbook
def delete_noncontiguous_columns(file_path, sheet_name, column_indices):
# 加载 Excel 文件
workbook = load_workbook(file_path)
sheet = workbook[sheet_name]
# 获取所有列的索引
all_columns = list(sheet.columns)
# 反向遍历索引列表,删除非连续列
for index in sorted(column_indices, reverse=True):
del all_columns[index - 1]
# 清空表格
for column in sheet.columns:
for cell in column:
cell.value = None
# 重新写入保留的列
for column in all_columns:
for i, cell in enumerate(column, start=1):
sheet.cell(row=i, column=column[0].column).value = cell.value
# 保存修改后的表格
workbook.save(file_path)
# 示例用法
file_path = "path/to/your/excel/file.xlsx"
sheet_name = "Sheet1"
column_indices = [1, 3, 5] # 要删除的列的索引
delete_noncontiguous_columns(file_path, sheet_name, column_indices)
```
在示例代码中,我们首先使用 `load_workbook` 函数加载 Excel 文件,然后获取指定工作表的所有列。接下来,我们反向遍历要删除的列的索引列表,并删除这些列。然后,我们清空表格,并重新写入保留的列。最后,我们使用 `save` 方法保存修改后的 Excel 文件。
请注意,列的索引从 1 开始,而不是从 0 开始。所以,如果你要删除第一列,索引应该是 1,而不是 0。
阅读全文