利用Python第三方庫(kù)xlwt寫(xiě)入數(shù)據(jù)到Excel工作表實(shí)例代碼
1. 安裝 xlwt 庫(kù)
Python 寫(xiě)入數(shù)據(jù)到 Excel 工作簿中可以使用第三方庫(kù) xlwt. xlwt 拆分下來(lái)看就是 excel 和 write 的簡(jiǎn)化拼接,意思就是寫(xiě)數(shù)據(jù)到 Excel. 這個(gè)第三方庫(kù)的 pip 安裝命令如下所示:
pip install xlwt -i https://mirrors.aliyun.com/pypi/simple
xlwt 的安裝方式和 xlrd 的安裝方式一樣,不過(guò)這里 xlwt 沒(méi)有指定版本,直接用默認(rèn)版本就好,其他的不再贅述了。
2. 使用 xlwt 庫(kù)
使用 xlwt 寫(xiě)入到 Excel 工作簿支持兩種擴(kuò)展名:xls 和 xlsx. 這兩種擴(kuò)展名代表兩種不同的 Excel 版本。
xls 為 Excel 2003 及以前的版本擴(kuò)展名,支持的最大行數(shù)為 65536, 最大列數(shù)為 256. 而 xlsx 為 Excel 2007 及以后的版本擴(kuò)展名,它的最大支持行數(shù)為 1048576, 最大支持列數(shù)為 16384.
需要注意的是,Excel 2007 及之后版本可以打開(kāi)上述兩種格式文件,而 Excel 2003 版本只能打開(kāi) xls 格式文件。
2.1 向 Excel 工作表寫(xiě)入單個(gè)數(shù)據(jù)
因?yàn)檫@篇教程是看完 《使用 Python 第三方庫(kù) xlrd 讀取 Excel 中的數(shù)據(jù)》才看的進(jìn)階教程。因此,Excel 工作簿和 Excel 工作表以及單元格的層次關(guān)系,我不再贅述了,直接 ”上菜“:
import xlwt
# 新建工作簿
my_workbook = xlwt.Workbook()
# 創(chuàng)建新的工作表對(duì)象 worksheet, 并取名為 test_sheet
sheet = my_workbook.add_sheet('test_sheet')
# 給定單元格坐標(biāo), 一次寫(xiě)入一個(gè)單元格數(shù)據(jù)
sheet.write(0, 0, '姓名')
sheet.write(0, 1, '年齡')
sheet.write(0, 2, '班級(jí)')
sheet.write(0, 3, '學(xué)號(hào)')
# 保存文件
my_workbook.save('test.xlsx')
代碼解析:
- 首先,通過(guò) Workbook() 方法新建一個(gè)工作簿對(duì)象
- 之后,通過(guò) add_sheet() 方法新建一個(gè) Sheet 表,表名為 ‘test_sheet’, 這個(gè)可以根據(jù)需求自定義。
- 然后,又通過(guò) write() 方法寫(xiě)入數(shù)據(jù),方法中的參數(shù)分別為單元格橫坐標(biāo)、縱坐標(biāo)和單元格數(shù)據(jù)。
- 最后,使用 save() 方法保存文件,參數(shù)為文件名字符串。
2.2 向 Excel 工作表寫(xiě)入多個(gè)數(shù)據(jù)
那么在 2.1 小節(jié)中,我們使用 write() 方法每次只寫(xiě)入一個(gè)單元格數(shù)據(jù),在寫(xiě)入多個(gè)數(shù)據(jù)的時(shí)候,每次都調(diào)用一次 write() 方法未免過(guò)于繁瑣,增加了很多冗余代碼,降低編碼效率。
因此,我們使用一種新的方法,將數(shù)據(jù)寫(xiě)入到單元格中。修改后的代碼如下:
import xlwt
# 新建工作簿
my_workbook = xlwt.Workbook()
# 創(chuàng)建新的工作表對(duì)象 worksheet, 并取名為 test_sheet
sheet = my_workbook.add_sheet('test_sheet')
name_list = ['姓名', '年齡', '班級(jí)', '學(xué)號(hào)']
for i in name_list:
sheet.write(0, name_list.index(i), i)
# 保存文件
my_workbook.save('test.xlsx')
代碼解析:
在上面的代碼中,我們將要寫(xiě)入的同一行數(shù)據(jù)存放在一個(gè)列表中,之后使用 for 循環(huán),固定單元格橫坐標(biāo)為 0, 列坐標(biāo)不斷變化,列坐標(biāo)通過(guò)調(diào)用列表的 index() 方法獲取,之后寫(xiě)入的數(shù)據(jù)就是循環(huán)到的當(dāng)前值。
2.3 向 Excel 工作表寫(xiě)入多個(gè)數(shù)據(jù)(進(jìn)階)
在 2.2 小節(jié)中,我們學(xué)習(xí)了向 Excel 工作表寫(xiě)入多個(gè)數(shù)據(jù),方法是將多個(gè)數(shù)據(jù)以列表的形式組合起來(lái),然后使用 for 循環(huán)。那么如果說(shuō),寫(xiě)入的數(shù)據(jù)是列表和字典嵌套形成的,又該怎樣將數(shù)據(jù)剝離出來(lái)寫(xiě)入到對(duì)應(yīng)的單元格內(nèi)呢?
例如,給定一個(gè)數(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'
}
]
如果是這樣的一個(gè)數(shù)據(jù),此時(shí)我們可以考慮使用 Python 內(nèi)置的函數(shù) enumerate(). 代碼如下所示:
import xlwt
# 新建工作簿
my_workbook = xlwt.Workbook()
# 創(chuàng)建新的工作表對(duì)象 worksheet, 并取名為 test_sheet
sheet = my_workbook.add_sheet('test_sheet')
name_list = ['姓名', '年齡', '性別', '學(xué)號(hào)']
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 是一個(gè)列表類(lèi)型變量,它的元素是字典類(lèi)型,一共四個(gè)字典元素。
- 之后,再看一下 enumerate() 函數(shù)。該函數(shù)用于將一個(gè)可便利的數(shù)據(jù)對(duì)象(如列表、元組和字符串) 組合為一個(gè)索引序列,同時(shí)列出數(shù)據(jù)和數(shù)據(jù)下標(biāo),一般用在 for 循環(huán)中。
- 因此,在 for 循環(huán)中的變量 i 代表的是列表中遍歷到的當(dāng)前字典的下標(biāo),item 代表的是當(dāng)前遍歷到的字典的值, item[‘name’] 表示根據(jù)鍵 ‘name’, 獲取鍵對(duì)應(yīng)的值。
- 最后,對(duì)于 enumerate() 函數(shù)的使用,再舉一個(gè)例子。例如:words = [‘A’, ‘B’, ‘C’, ‘D’]. for i, word in enumerate(words): print(i, element). 它的輸出結(jié)果應(yīng)該是 0, ‘A’ ‘1’, ‘B’, ‘2’, ‘C’, ‘3’, ‘D’.
3. 總結(jié)
通過(guò)上面的學(xué)習(xí),相信大家對(duì) xlwt第三方庫(kù)的安裝以及使用第三方庫(kù)向Excel 中寫(xiě)入數(shù)據(jù)的方法有了一定的掌握。如果想要了解更多關(guān)于 xlwt 模塊的方法,可以參考官網(wǎng)文檔哦!
到此這篇關(guān)于利用Python第三方庫(kù)xlwt寫(xiě)入數(shù)據(jù)到Excel工作表的文章就介紹到這了,更多相關(guān)Python xlwt寫(xiě)入數(shù)據(jù)到Excel內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Python快樂(lè)學(xué)數(shù)學(xué)Github萬(wàn)星神器Manim簡(jiǎn)介
這篇文章主要介紹了使用Python快樂(lè)學(xué)數(shù)學(xué)Github萬(wàn)星神器Manim簡(jiǎn)介,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08
Python辦公自動(dòng)化之定時(shí)郵件提醒和音視頻文件處理
這篇文章主要為大家詳細(xì)介紹了Python辦公自動(dòng)化中定時(shí)郵件提醒和音視頻文件處理的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),需要的小伙伴可以了解下2023-12-12
python 讀取鼠標(biāo)點(diǎn)擊坐標(biāo)的實(shí)例
今天小編就為大家分享一篇python 讀取鼠標(biāo)點(diǎn)擊坐標(biāo)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12
使用Django搭建web服務(wù)器的例子(最最正確的方式)
今天小編就為大家分享一篇使用Django搭建web服務(wù)器的例子(最最正確的方式),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08
python基礎(chǔ)教程之基本內(nèi)置數(shù)據(jù)類(lèi)型介紹
在Python程序中,每個(gè)數(shù)據(jù)都是對(duì)像,每個(gè)對(duì)像都有自己的一個(gè)類(lèi)型。不同類(lèi)型有不同的操作方法,使用內(nèi)置數(shù)據(jù)類(lèi)型獨(dú)有的操作方法,可以更快的完成很多工作2014-02-02
基于python實(shí)現(xiàn)監(jiān)聽(tīng)Rabbitmq系統(tǒng)日志代碼示例
這篇文章主要介紹了基于python實(shí)現(xiàn)監(jiān)聽(tīng)Rabbitmq系統(tǒng)日志代碼示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11

