操作excel的xlwt库难道没有删除sheet 的方法吗?

大家好,我是皮皮。

一、前言

前几天在Python最强王者群【小马哥】问了一个Python自动化办公处理的问题,一起来看看吧。

各位大神,操作excel的xlwt,这个添加sheet的时候可以用add_sheet方法,xlwt难道没有删除sheet 的方法吗?没有找到怎么用xlwt去删除一个sheet。

image.png

二、实现过程

这里【维哥】给了一个解答,如下:xlwt库本身没有提供删除sheet的方法。但是,您可以通过创建一个新的工作簿,将不需要的sheet从原始工作簿中复制到新工作簿中,然后保存新工作簿来实现删除sheet的目的。

import xlwt

# 创建一个工作簿
workbook = xlwt.Workbook()

# 添加sheet1和sheet2
sheet1 = workbook.add_sheet('Sheet1')
sheet2 = workbook.add_sheet('Sheet2')

# 在sheet1中写入数据
sheet1.write(0, 0, 'Hello')
sheet1.write(0, 1, 'World')

# 在sheet2中写入数据
sheet2.write(0, 0, 'Xlswt')
sheet2.write(0, 1, 'Python')

# 保存工作簿
workbook.save('example.xls')

# 创建一个新的工作簿
new_workbook = xlwt.Workbook()

# 从原始工作簿中复制需要保留的sheet到新工作簿中
for sheet_name in ['Sheet1', 'Sheet3']:  # 将'Sheet3'替换为要删除的sheet名称
    new_sheet = new_workbook.add_sheet(sheet_name)
    for row in range(sheet1.nrows):
        for col in range(sheet1.ncols):
            new_sheet.write(row, col, sheet1.cell_value(row, col))

# 保存新工作簿
new_workbook.save('example_without_deleted_sheet.xls')

这个示例中,我们首先创建了一个包含两个sheet的工作簿。然后,我们创建了一个新的工作簿,并将原始工作簿中的'Sheet1'和'Sheet3'(将'Sheet3'替换为要删除的sheet名称)复制到新工作簿中。最后,我们保存了新工作簿。

image.png

事实上,xlwt模块是用于写入Excel文件的,它并不支持删除sheet的操作。如果您需要删除Excel文件中的某个sheet,可以使用xlrd和xlwt库的结合,实现先读取Excel文件,然后使用xlwt库创建一个新的Excel文件,将需要保留的sheet复制到新的文件中,最后删除旧的Excel文件。

最后发现还是openpyxl库比较香喷喷!后来【D I Y】还推荐了一个Xlutils库,也非常不错。

三、总结

大家好,我是皮皮。这篇文章主要盘点了一个Python自动化办公Excel表删除处理的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

最后感谢粉丝【小马哥】提问,感谢【维哥】、【D I Y】给出的思路和代码解析,感谢【莫生气】等人参与学习交流。

【提问补充】温馨提示,大家在群里提问的时候。可以注意下面几点:如果涉及到大文件数据,可以数据脱敏后,发点demo数据来(小文件的意思),然后贴点代码(可以复制的那种),记得发报错截图(截全)。代码不多的话,直接发代码文字即可,代码超过50行这样的话,发个.py文件就行。

image.png

posted @ 2023-08-18 14:26  dcpeng  阅读(35)  评论(0编辑  收藏  举报