python 操作excel根据某一行的数值对一行进行复制扩行-代码实现

python 操作excel根据某一行的数值对一行进行复制扩列-代码实现

今天又帮同学做了一个题目,是关于excel针对一行的某个数字进行对该行进行扩列:
如下:在这里插入图片描述根据数量那个值进行如下扩行

python 操作excel根据某一行的数值对一行进行复制扩行-代码实现_第1张图片
代码实现如下:
这个代码功能还是很实用的,感兴趣的,可以学习学习

import xlwt
import xlrd
import numpy as np
path="C:/learn_data/"
#Excel数据
#生成xls工作薄

#生成xlsx工作薄 
#从工作薄中读取
book = xlrd.open_workbook(path + '大数量拆分.xlsx')
import os

wb = xlwt.Workbook()
print(wb) 
wb.add_sheet('first_sheet', cell_overwrite_ok=True) 
wb.get_active_sheet() 
ws_1 = wb.get_sheet(0) 
print(ws_1) 



sheet_1 = book.sheet_by_index(0) #通过索引获得表
row_final=0;
for row in range(sheet_1.nrows): 
    if row>2:
         
        print(sheet_1.row(row)[4])
        try:
            num=int(sheet_1.row(row)[4].value)
      
            for i in range(num):
                for c in range(sheet_1.ncols):
                    if c!=4:
                        ws_1.write(row_final, c,sheet_1.row(row)[c].value)  
                    else:
                        ws_1.write(row_final, c,int(1))  
                row_final=row_final+1
        except:
          pass
    else:
         for c in range(sheet_1.ncols):
             ws_1.write(row_final, c,sheet_1.row(row)[c].value)
         row_final=row_final+1
          




      #  print(sheet_1.row(row))

#for c in range(data.shape[0]):    
#    for r in range(data.shape[1]):        
#         ws_1.write(r, c, int(data[c, r]))        
        
wb.save(path + 'workbook.xlsx') 
os.system("pause")

你可能感兴趣的:(实用性博客,python,数据分析,python,numpy,开发语言)