1. 程式人生 > 實用技巧 >Python Excel操作---openpyxl應用 (2020-12-30 09:51)

Python Excel操作---openpyxl應用 (2020-12-30 09:51)

openpyxl 應用於讀寫 Excel 2010 xlsx/xlsm/xltx/xltm 檔案。主要應用兩個模組 Workbook、load_workbook。

load_workbook模組

load_workbook模組用於讀取現有xlsx檔案,其返還為一個workbook 物件。應用方法為

 from openpyxl import load_workbook
 wb  = load_workbook('檔名')

wb = load_workbook('檔名') 和 wb= Workbook() 作用類似,區別在於load_workbook 用於開啟已存在的excel檔案,而 Workbook則新建一個excel檔案。

Workbook模組

Workbook模組是openpyxl 的核心模組,對excel表格的操作均集中在此模組內。下面一段程式碼為開啟encoding_book.xlsx表格,並在表格中encoding test sheet中按行寫入資料。

def TxtoExcel():
    file_name_list= [x for x in range(len(ip_id))]
    global __TEST_RSSI
    dest_filename = 'encoding_book.xlsx'
    """"用於將測試資料寫入excel表格"""
    #開啟excel檔案
    wb = load_workbook(dest_filename)
    #獲取sheet名稱為"encoding test"sheet
    ws1 = wb.get_sheet_by_name("encoding test")
    #將ws1設定為當前活動表格
    wb.active = ws1
    #獲取有內容的最後行號
    # row_max = ws1.max_row

    # ws1 = wb.active
    # ws1 = wb.create_sheet(title=__TEST_RSSI)
    # wb.active = ws1
    # grab the active worksheet
    # ws1 = wb.active
    # ws1.title = __TEST_RSSI

    for (key,item) in ip_id.items():
        file_name = "{}.txt".format(key)
        file_name_list[(int(item)-1)] = file_name
    result_1 = get_result_line(file_name_list[0])
    result_2 = get_result_line(file_name_list[1])
    result_3 = get_result_line(file_name_list[2])
    result_4 = get_result_line(file_name_list[3])
    for (key,item) in result_1.items():
        ws1.append(['',''])
        ws1.append(fist_row)
        ws1.append(item)
        ws1.append(result_2[key])
        ws1.append(result_3[key])
        ws1.append(result_4[key])
    wb.save(filename = dest_filename)
    wb.close()