openpyxl------------多excel操作

测试数据

 

#########################多个excel表内容,合到一个excel表的sheet中

from openpyxl import load_workbook,Workbook
import os

def copy_data():
wb = Workbook()
sh = wb.active
all_data = []
for name in os.listdir('C:/Users/admin/Desktop/data'):
path = f'C:/Users/admin/Desktop/data/{name}'
tmp_wb = load_workbook(path)
tmp_sh = tmp_wb.active
for r in range(1,tmp_sh.max_row):
#获取整行数据
row_value = []
for c in range(1,tmp_sh.max_column):
value = tmp_sh.cell(r,c).value
row_value.append(value)
##获取整行数据,加到全局数据里
if row_value not in all_data: ##去重操作
all_data.append(row_value)
for data in all_data:
sh.append(data)
wb.save('C:/Users/admin/Desktop/合并的shuju.xlsx')
if __name__ == "__main__":
copy_data()
实现效果:

 可以看出每张表中,少了一行,所以再改代码

for r in range(1,tmp_sh.max_row+1):
for c in range(1,tmp_sh.max_column+1):

 实现效果:

 

 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

 =================将多个工作簿的excel表格内容,添加到一个工作簿里面的多个工作表sheet中======================

from openpyxl import load_workbook,Workbook
import os

def copy_data():
wb = Workbook()
for name in os.listdir('C:/Users/admin/Desktop/data'):
path = f'C:/Users/admin/Desktop/data/{name}'
tmp_wb = load_workbook(path)
tmp_sh = tmp_wb.active
sh = wb.create_sheet(name)


for r in range(1,tmp_sh.max_row+1):
#获取整行数据
row_value = []
for c in range(1,tmp_sh.max_column+1):
value = tmp_sh.cell(r,c).value
row_value.append(value)
sh.append(row_value)
##删除多余的工作表sheet,如果不删除sheet,它会产生多余的工作表sheet
del wb['Sheet']
wb.save('C:/Users/admin/Desktop/合并的数据.xlsx')
if __name__ == "__main__":
copy_data()
实现效果:

 经检查,数据与源数据相同!!

对sheet名称进行切片:

sh = wb.create_sheet(name[:-2])

 

sh = wb.create_sheet(name[:1])########sheet名称变成了一个字

 

 




posted @ 2024-01-11 14:31  往事已成昨天  阅读(17)  评论(0编辑  收藏  举报