用python包xlwt将数据写入Excel中

一般用两种格式的数据写入,不多说放上demo。

1、列表形式写入

import xlwt

def data_write(file_path, datas):
    f = xlwt.Workbook()
    sheet1 = f.add_sheet(u'sheet1',cell_overwrite_ok=True) #创建sheet
    title = []  #加入表头
    datas.insert(0, title) #写入表头
    style = xlwt.XFStyle() #创建样式
    align = xlwt.Alignment() #创建对齐方式
    align.horz = 1  #1-->左对齐,2-->居中,3-->右对齐
    style.alignment = align
    #将数据写入第 i 行,第 j 列
    i = 0
    for data in datas:
        for j in range(len(data)):
            sheet1.write(i,j,data[j],style=style)
        i = i + 1        
    f.save(file_path) #保存文件

2、字典形式写入

     
    def dict_write_excel(html1):
        data_list = []
        # 循环得到每一个data
        for data in html1:
            # 循环得到data字典里的所有键值对的值
            for value in data.values():
                # 将得到的值放入空列表中
                data_list.append(value)
        # 创建一个新的列表生成式并赋给一个变量new_list.
        # 这个列表生成式主要是将数据每8个为一个新的元素存入新的列表中,即列表套列表
        new_list = [data_list[i:i + 8] for i in range(0, len(data_list), 8)]
        # 生成一个xlwt.Workbook对象
        xls = xlwt.Workbook()
        # 调用对象的add_sheet方法
        sheet = xls.add_sheet('sheet1', cell_overwrite_ok=True)
        # 创建我们需要的第一行的标头数据
        heads = ['one', 'two', 'three', 'four', 'five', 'six', 'seven','eight']
        ls = 0
        # 将标头循环写入表中
        for head in heads:
            sheet.write(0, ls, head)
            ls += 1
        i = 1
        # 将数据分两次循环写入表中 外围循环行
        for list in new_list:
            j = 0
            # 内围循环列
            for data in list:
                sheet.write(i, j, data)
                j += 1
            i += 1
        # 最后将文件save保存
        xls.save('案例.xls')

 

小案例:

import xlwt


def write_excel(file_path, datas):
    f = xlwt.Workbook()
    sheet1 = f.add_sheet(u"年龄", cell_overwrite_ok=True)
    title = ["xxx", "XXX"]
    title1 = ["trade", "<18", "25-29", "18-24", "35-39", "30-34", "45-49", "40-44", ">50"]
    datas.insert(0, title1)  # 写入表头
    datas.insert(0, title)
    # 将数据写入第 i 行,第 j 列
    style = xlwt.XFStyle()
    align = xlwt.Alignment()
    align.horz = 1
    style.alignment = align
    i = 0
    for data in datas:
        for j in range(len(data)):
            sheet1.write(i, j, data[j], style=style)
        i = i + 1
    f.save(file_path)  # 保存文件


if __name__ == "__main__":
    datas = [["电竞", 1, 2, 3, 4, 5, 6, 7, 8], ["电商", 1, 2, 3, 4, 5, 6, 7, 8]]
    write_excel("/Users/leisunny/Desktop/mysite/practice/demo.xls", datas)

注意:xlwt包只能出来xls格式的Excel文件,xlsx格式的需要用pandas或openpyxl包

posted @ 2020-08-03 11:03  Lei、Sunny  阅读(2577)  评论(0编辑  收藏  举报