1. 程式人生 > 其它 >python實現在excel檔案中寫入和追加內容

python實現在excel檔案中寫入和追加內容

技術標籤:檔案操作excelpython

excel是我們在日常工作中經常會用到的表格工具,我們在也已通過python來實現excel檔案中寫入和追加內容。
話不多說,上乾貨。
import xlwt
import xlrd
from xlutils.copy import copy


def write_to_excel(words, filename, sheet_name='sheet1'):
    '''
    將item儲存到excel中。
    :param words: 儲存item的list    [{},{}]格式
    :return:
    '''
    try
: # 1、建立工作薄 work_book = xlwt.Workbook(encoding='utf-8') # 2、建立sheet表單 sheet = work_book.add_sheet(sheet_name) # 3、寫表頭 # head = ['英文','中文'] head = [] for k in words[0].keys(): head.append(k) for i in range(len(head)):
sheet.write(0, i, head[i]) # 4、新增內容 # 行號 i = 1 for item in words: for j in range(len(head)): sheet.write(i, j, item[head[j]]) # 寫完一行,將行號+1 i += 1 # 儲存 work_book.save(filename) print
('寫入excel成功!') except Exception as e: print('寫入excel失敗!', e) def append_to_excel(words, filename): ''' 追加資料到excel :param words: 【item】 [{},{}]格式 :param filename: 檔名 :return: ''' try: # 開啟excel word_book = xlrd.open_workbook(filename) # 獲取所有的sheet表單。 sheets = word_book.sheet_names() # 獲取第一個表單 work_sheet = word_book.sheet_by_name(sheets[0]) # 獲取已經寫入的行數 old_rows = work_sheet.nrows # 獲取表頭資訊 heads = work_sheet.row_values(0) # 將xlrd物件變成xlwt new_work_book = copy(word_book) # 新增內容 new_sheet = new_work_book.get_sheet(0) i = old_rows for item in words: for j in range(len(heads)): new_sheet.write(i, j, item[heads[j]]) i += 1 new_work_book.save(filename) print('追加成功!') except Exception as e: print('追加失敗!', e) if __name__ == '__main__': # 樣例 words1 = [ {'name': 'aki', 'age': 18, 'gender': '女'}, {'name': 'zed', 'age': 20, 'gender': '男'} ] words2 = [ {'name': 'leblance', 'age': 19, 'gender': '女'}, {'name': 'yasuo', 'age': 20, 'gender': '男'} ] # 寫入內容 write_to_excel(words=words1, filename='demo.xls', ) # 追加內容 append_to_excel(words=words2, filename='demo.xls')

執行結果如下:

在這裡插入圖片描述

生成的excel表格內容結果如下:

在這裡插入圖片描述