Excel表格的拆分:

发布时间 2024-01-08 14:56:36作者: 往事已成昨天

原始数据

 

代码如下;

import xlrd
from xlutils.copy import copy
def get_data():
wb = xlrd.open_workbook("C:/Users/admin/Desktop/baihuo.xls")
sh = wb.sheet_by_index(0)
'''
{
a: 123
b: 456
c: 789
}
'''
all_data = {}
for r in range(sh.nrows):
d = { 'type': sh.cell_value(r,1),'name': sh.cell_value(r,2),'count': sh.cell_value(r,3),'price': sh.cell_value(r,4)}
key = sh.cell_value(r,0)
if all_data.get(key):
all_data[key].append(d)
else:
all_data[key] = [d]
return all_data
def save(data):
wb = xlrd.open_workbook("C:/Users/admin/Desktop/baihuo.xls")
wb2 = copy(wb)
for key in data.keys():
temp_sheet = wb2.add_sheet(key)
for i,d in enumerate(data.get(key)):
temp_sheet.write(i,1,d.get('type'))
temp_sheet.write(i, 2, d.get('name'))
temp_sheet.write(i, 3, d.get('count'))
temp_sheet.write(i, 4, d.get('price'))
wb2.save("C:/Users/admin/Desktop/aa.xls")
if __name__ == "__main__":
all_data = get_data()
save(all_data)
实现效果:

 

 

 将写入的位置修改一下

for i,d in enumerate(data.get(key)):
temp_sheet.write(i,0,d.get('type'))
temp_sheet.write(i, 1, d.get('name'))
temp_sheet.write(i, 2, d.get('count'))
temp_sheet.write(i, 3, d.get('price'))
实现效果: