我想要将excel表中的某个标复制,并且保留原来工作表中的格式,但是实际复制后却有些不一样
import openpyxl
wb = openpyxl.load_workbook(r"实验表.xlsx")
sheet1 = wb["楼栋表"]
sheet2 = wb["1#1001"] #需要复制的表
col = sheet1["a2:a1462"] #复制后的工作表的表名
i = 4
for row in col:
for cell in row:
if cell.value != "1#1001":
wb.copy_worksheet(sheet2) #复制出一个新的工作表
i += 1 #复制前最后一个工作表的索引是4,复制后+1
sheet3 = wb.worksheets[i]
sheet3.sheet_view.showGridLines = False #去除网格线
sheet3.views.sheetView[0].zoomScale = 80 #更改缩放比例为80%
sheet3.title = f"{cell.value}" #将复制后的表的表名进行更改
cell1 = sheet3["b1"] #复制后的b1单元格显示的跟表名一样
cell1.value = cell.value
wb.save(r"处理后的表.xlsx")
图1是我要复制的工作表,图2是复制过后的工作表,复制过后的工作表D1、F1没有跟图1里的有填充色,并且表格是有显示网格的,且缩放比例没有跟元表一样是80%,我从网上找了sheet3.sheet_view.showGridLines = False和sheet3.views.sheetView[0].zoomScale = 80这两行代码才把网格和缩放比例问题处理完成,现在最重要的一点是D1、D2、F1、F2是有一个下拉菜单的,但是复制后却没有了
搜了半天都没有搜到如何解决下拉菜单这个问题的方法,但是在EXCEL中直接复制单元格是可以保留下拉菜单的
1.有没有办法将工作表完美复制,比如我上文提到的下拉菜单、缩放比例、网格隐藏直接可以一次实现?
2.如果没法达到1的内容,那么我是否可以通过复制单个单元格到我已经复制完成的单元表中完成替换,使得下拉菜单、填充颜色这个一起替换过去
wb.copy_worksheet(sheet2)
这句不要放到循环里,copy一次就行了,要不然你在循环里的其他操作不白操作了