目錄
1. 安裝 xlwt 庫
Python 寫入數(shù)據(jù)到 Excel 工作簿中可以使用第三方庫 xlwt. xlwt 拆分下來看就是 excel 和 write 得簡化拼接,意思就是寫數(shù)據(jù)到 Excel. 這個第三方庫得 pip 安裝命令如下所示:
pip install xlwt -i https://mirrors.aliyun.com/pypi/simple
xlwt 得安裝方式和 xlrd 得安裝方式一樣,不過這里 xlwt 沒有指定版本,直接用默認版本就好,其他得不再贅述了。
2. 使用 xlwt 庫
使用 xlwt 寫入到 Excel 工作簿支持兩種擴展名:xls 和 xlsx. 這兩種擴展名代表兩種不同得 Excel 版本。
xls 為 Excel 2003 及以前得版本擴展名,支持得最大行數(shù)為 65536, 最大列數(shù)為 256. 而 xlsx 為 Excel 2007 及以后得版本擴展名,它得最大支持行數(shù)為 1048576, 最大支持列數(shù)為 16384.
需要注意得是,Excel 2007 及之后版本可以打開上述兩種格式文件,而 Excel 2003 版本只能打開 xls 格式文件。
2.1 向 Excel 工作表寫入單個數(shù)據(jù)
因為這篇教程是看完 《使用 Python 第三方庫 xlrd 讀取 Excel 中得數(shù)據(jù)》才看得進階教程。因此,Excel 工作簿和 Excel 工作表以及單元格得層次關系,我不再贅述了,直接 ”上菜“:
import xlwt# 新建工作簿my_workbook = xlwt.Workbook()# 創(chuàng)建新得工作表對象 worksheet, 并取名為 test_sheetsheet = my_workbook.add_sheet('test_sheet')# 給定單元格坐標, 一次寫入一個單元格數(shù)據(jù)sheet.write(0, 0, '姓名')sheet.write(0, 1, '年齡')sheet.write(0, 2, '班級')sheet.write(0, 3, '學號')# 保存文件my_workbook.save('test.xlsx')
代碼解析:
- 首先,通過 Workbook() 方法新建一個工作簿對象
- 之后,通過 add_sheet() 方法新建一個 Sheet 表,表名為 ‘test_sheet’, 這個可以根據(jù)需求自定義。
- 然后,又通過 write() 方法寫入數(shù)據(jù),方法中得參數(shù)分別為單元格橫坐標、縱坐標和單元格數(shù)據(jù)。
- 最后,使用 save() 方法保存文件,參數(shù)為文件名字符串。
2.2 向 Excel 工作表寫入多個數(shù)據(jù)
那么在 2.1 小節(jié)中,我們使用 write() 方法每次只寫入一個單元格數(shù)據(jù),在寫入多個數(shù)據(jù)得時候,每次都調(diào)用一次 write() 方法未免過于繁瑣,增加了很多冗余代碼,降低編碼效率。
因此,我們使用一種新得方法,將數(shù)據(jù)寫入到單元格中。修改后得代碼如下:
import xlwt# 新建工作簿my_workbook = xlwt.Workbook()# 創(chuàng)建新得工作表對象 worksheet, 并取名為 test_sheetsheet = my_workbook.add_sheet('test_sheet')name_list = ['姓名', '年齡', '班級', '學號']for i in name_list: sheet.write(0, name_list.index(i), i)# 保存文件my_workbook.save('test.xlsx')
代碼解析:
在上面得代碼中,我們將要寫入得同一行數(shù)據(jù)存放在一個列表中,之后使用 for 循環(huán),固定單元格橫坐標為 0, 列坐標不斷變化,列坐標通過調(diào)用列表得 index() 方法獲取,之后寫入得數(shù)據(jù)就是循環(huán)到得當前值。
2.3 向 Excel 工作表寫入多個數(shù)據(jù)(進階)
在 2.2 小節(jié)中,我們學習了向 Excel 工作表寫入多個數(shù)據(jù),方法是將多個數(shù)據(jù)以列表得形式組合起來,然后使用 for 循環(huán)。那么如果說,寫入得數(shù)據(jù)是列表和字典嵌套形成得,又該怎樣將數(shù)據(jù)剝離出來寫入到對應得單元格內(nèi)呢?
例如,給定一個數(shù)據(jù) data, 如下所示:
data = [ { 'name': '華仔仔', 'age': 12, 'gender': '男', 'xuehao': '001' }, { 'name': '華仔', 'age': 15, 'gender': '男', 'xuehao': '002' }, { 'name': '帥氣得華仔仔', 'age': 18, 'gender': '男', 'xuehao': '003' }, { 'name': '華仔仔coding', 'age': 20, 'gender': '男', 'xuehao': '004' }]
如果是這樣得一個數(shù)據(jù),此時我們可以考慮使用 Python 內(nèi)置得函數(shù) enumerate(). 代碼如下所示:
import xlwt# 新建工作簿my_workbook = xlwt.Workbook()# 創(chuàng)建新得工作表對象 worksheet, 并取名為 test_sheetsheet = my_workbook.add_sheet('test_sheet')name_list = ['姓名', '年齡', '性別', '學號']for i in name_list: sheet.write(0, name_list.index(i), i)data = [ { 'name': '華仔仔', 'age': 12, 'gender': '男', 'xuehao': '001' }, { 'name': '華仔', 'age': 15, 'gender': '男', 'xuehao': '002' }, { 'name': '帥氣得華仔仔', 'age': 18, 'gender': '男', 'xuehao': '003' }, { 'name': '華仔仔coding', 'age': 20, 'gender': '男', 'xuehao': '004' }]for i, item in enumerate(data): sheet.write(i+1, 0, item['name']) sheet.write(i + 1, 1, item['age']) sheet.write(i + 1, 2, item['gender']) sheet.write(i + 1, 3, item['xuehao'])# 保存文件my_workbook.save('test.xlsx')
代碼解析:
- 首先,看一下 data, data 是一個列表類型變量,它得元素是字典類型,一共四個字典元素。
- 之后,再看一下 enumerate() 函數(shù)。該函數(shù)用于將一個可便利得數(shù)據(jù)對象(如列表、元組和字符串) 組合為一個索引序列,同時列出數(shù)據(jù)和數(shù)據(jù)下標,一般用在 for 循環(huán)中。
- 因此,在 for 循環(huán)中得變量 i 代表得是列表中遍歷到得當前字典得下標,item 代表得是當前遍歷到得字典得值, item[‘name’] 表示根據(jù)鍵 ‘name’, 獲取鍵對應得值。
- 最后,對于 enumerate() 函數(shù)得使用,再舉一個例子。例如:words = [‘A’, ‘B’, ‘C’, ‘D’]. for i, word in enumerate(words): print(i, element). 它得輸出結果應該是 0, ‘A’ ‘1’, ‘B’, ‘2’, ‘C’, ‘3’, ‘D’.
3. 總結
通過上面得學習,相信大家對 xlwt第三方庫得安裝以及使用第三方庫向Excel 中寫入數(shù)據(jù)得方法有了一定得掌握。如果想要了解更多關于 xlwt 模塊得方法,可以參考官網(wǎng)文檔哦!
到此這篇關于利用Python第三方庫xlwt寫入數(shù)據(jù)到Excel工作表得內(nèi)容就介紹到這了,更多相關Python xlwt寫入數(shù)據(jù)到Excel內(nèi)容請搜索之家以前得內(nèi)容或繼續(xù)瀏覽下面得相關內(nèi)容希望大家以后多多支持之家!