zoukankan      html  css  js  c++  java
  • 用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包

  • 相关阅读:
    基本计数方法
    每天工作4小时的程序员
    明星软件工程师的10种特质(转)
    IT高薪者所具备的人格魅力
    Unity_Shader开发_图形学基础(五)--------2016.1.9
    unity 架构设计的学习
    深入浅出聊优化:从Draw Calls到GC
    PG+mask替代透明Png(转)
    基于战斗重演的全校验---- 塔防大师PVP反外挂设计
    Unity项目开发准则
  • 原文地址:https://www.cnblogs.com/leisunny/p/13425144.html
Copyright © 2011-2022 走看看