python将数据写入execle

#execle写入模块
import xlwt



class WriteExecle():

    def __init__(self,sheet_name,filename,header_data,data):
        '''

        :param sheet_name:  sheet表单名称
        :param filename:    存放execle文件绝对路径
        :param header_data: 写入的列表头字段数据
        :param data:        写入的数据
        '''
        self.sheet_name =sheet_name
        self.filename =filename
        self.header_data =header_data
        self.data =data

    def write_execle(self):

        workbook = xlwt.Workbook() #激活worksheet


        #worksheet = workbook.add_sheet(self.sheet_name) # 数据可以直接分配到单元格中

        worksheet = workbook.add_sheet(self.sheet_name)
        for i in range(len(self.header_data)):
            ret = self.header_data[i][0]
            worksheet.write(0,i,ret)


        contenRow = len(self.data)

        first_col = []
        for i in range(contenRow):
            first_col.append(self.data[i][0])


        nfirst_col = list(set(first_col))
        nfirst_col.sort(key=first_col.index) # sort排序与原顺序一致
        #print("nfirst_col",nfirst_col)

        row = 1
        for i in nfirst_col:
            count = first_col.count(i)  # 计算元素的重复个数,比如测试 :3
            uprange = row+count-1  #合并范围后的上行数
            worksheet.write_merge(row,uprange,0,0,i)  #合并单元格写入内容
            row = uprange+1 #从下一行开始写入

        #获取content子列表第二个元素,循环写入excel第2列到最后开始的数据
        for row in range(contenRow):
            for col in range(1,len(self.data[row])):
                worksheet.write(row+1,col,self.data[row][col])


        try:
            workbook.save(self.filename)
            print("数据总量:{0}被写入{1}".format(contenRow, self.filename))
        except:
            print('\033[1;35m 执行失败:{}文件已打开,请关闭 \033[0m!'.format(self.filename))

猜你喜欢

转载自www.cnblogs.com/yrash/p/11491231.html