首先,很感謝B站和網上的其他博客,個人覺得博主的文章很全面~,謝謝
https://www.bilibili.com/video/BV14p4y1e7RK?from=search&seid=15752825247017275522&spm_id_from=333.337.0.0,
https://blog.csdn.net/zhouz92/article/details/107119898?spm=1001.2014.3001.5501
其次,寫這篇更多的是回顧今天所學:使用python中的xlrd模塊和xlwt模塊實現對Excel中數據的寫入和讀取操作。
目標:
- 新建Excel工作表
- 向具體的單元格寫入數據
- 讀入其他Excel表的內容。因為我想實現第二步寫入的數據來自其他的Excel表
- 對單元格添加一些樣式
- 我把每個小目標分別寫成了函數,使得代碼看起來思路清晰
詳細代碼:
分別安裝模塊: pip install xlrd pip install xlwt
1.創建新的excel表函數:
# 創建excel表
def create_excel(): work_book = xlwt.Workbook() # 新建工作簿
# cell_overwrite_ok默認是False,是否覆蓋
ws = work_book.add_sheet("Test1", cell_overwrite_ok=True) # 新建工作表
return work_book, ws
2.向具體的單元格寫入數據:
這里先向(0,0)(1,1)單元格寫入數據,后期從其他工作表中讀取數據后再修改
# 向具體的工作表的單元格寫入數據
def write_data(work_book, work_sheet): # 傳入的參數為:工作簿,工作表
# 向單元格寫入內容
work_sheet.write(0, 0, "123") work_sheet.write(1, 1, "come on") work_book.save("Test.xls")
3.讀取excel中的數據:
# 讀取excel表中的數據
def read_data(path): work_book = xlrd.open_workbook(path) sheet = work_book.sheet_by_index(0) # 根據索引獲取具體是哪一個工作表,也可以根據工作表的名字來獲取工作表
print("一共有:", sheet.nrows, "行", sheet.ncols, "列")
4.樣式函數:
我這里目前只是設置了一下字體,當然如果有其他需求,可以在這個函數不斷地添加需求,例如對齊方式等。
# 設置單元格樣式
def change_style(): style = xlwt.XFStyle() # 初始化樣式
# 字體的設置
c_font = xlwt.Font() # 設置字體的對象並初始化
c_font.name = "宋體" c_font.bold = True # 加粗
c_font.height = 16 * 20 # 字體大小 這里設置成16號字體,但是我沒有理解*20操作
c_font.colour_index = 0x0B # 這里顏色並不是我們平時所見的rgb,跳轉到colour_index選擇其他顏色就可以
style.font = c_font # 我的理解:將修改后的字體對象賦值給總的樣式
# 對齊方式的設置
return style
主函數中的代碼:
write_data()函數中,如果需要設置樣式,則傳參時加入style1;如果不需要,則刪除,系統有默認的樣式,看個人需求。
if __name__ == '__main__': wb, ws = create_excel() style1=change_style() write_data(wb, ws,style1) file = "abc.xls" read_data(file)