用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包


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM