首頁 > 軟體

利用Python第三方庫xlwt寫入資料到Excel工作表範例程式碼

2022-07-22 18:01:10

1. 安裝 xlwt 庫

Python 寫入資料到 Excel 工作簿中可以使用第三方庫 xlwt. xlwt 拆分下來看就是 excel 和 write 的簡化拼接,意思就是寫資料到 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 及以前的版本擴充套件名,支援的最大行數為 65536, 最大列數為 256. 而 xlsx 為 Excel 2007 及以後的版本擴充套件名,它的最大支援行數為 1048576, 最大支援列數為 16384.

需要注意的是,Excel 2007 及之後版本可以開啟上述兩種格式檔案,而 Excel 2003 版本只能開啟 xls 格式檔案。

2.1 向 Excel 工作表寫入單個資料

因為這篇教學是看完 《使用 Python 第三方庫 xlrd 讀取 Excel 中的資料》才看的進階教學。因此,Excel 工作簿和 Excel 工作表以及單元格的層次關係,我不再贅述了,直接 ”上菜“:

import xlwt

# 新建工作簿
my_workbook = xlwt.Workbook()
# 建立新的工作表物件 worksheet, 並取名為 test_sheet
sheet = my_workbook.add_sheet('test_sheet')
# 給定單元格座標, 一次寫入一個單元格資料
sheet.write(0, 0, '姓名')
sheet.write(0, 1, '年齡')
sheet.write(0, 2, '班級')
sheet.write(0, 3, '學號')
# 儲存檔案
my_workbook.save('test.xlsx')

程式碼解析:

  1. 首先,通過 Workbook() 方法新建一個工作簿物件
  2. 之後,通過 add_sheet() 方法新建一個 Sheet 表,表名為 ‘test_sheet’, 這個可以根據需求自定義。
  3. 然後,又通過 write() 方法寫入資料,方法中的引數分別為單元格橫座標、縱座標和單元格資料。
  4. 最後,使用 save() 方法儲存檔案,引數為檔案名字元串。

2.2 向 Excel 工作表寫入多個資料

那麼在 2.1 小節中,我們使用 write() 方法每次只寫入一個單元格資料,在寫入多個資料的時候,每次都呼叫一次 write() 方法未免過於繁瑣,增加了很多冗餘程式碼,降低編碼效率。

因此,我們使用一種新的方法,將資料寫入到單元格中。修改後的程式碼如下:

import xlwt

# 新建工作簿
my_workbook = xlwt.Workbook()
# 建立新的工作表物件 worksheet, 並取名為 test_sheet
sheet = 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')

程式碼解析:

在上面的程式碼中,我們將要寫入的同一行資料存放在一個列表中,之後使用 for 迴圈,固定單元格橫座標為 0, 列座標不斷變化,列座標通過呼叫列表的 index() 方法獲取,之後寫入的資料就是迴圈到的當前值。

2.3 向 Excel 工作表寫入多個資料(進階)

在 2.2 小節中,我們學習了向 Excel 工作表寫入多個資料,方法是將多個資料以列表的形式組合起來,然後使用 for 迴圈。那麼如果說,寫入的資料是列表和字典巢狀形成的,又該怎樣將資料剝離出來寫入到對應的單元格內呢?
例如,給定一個資料 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'
    }
]

如果是這樣的一個資料,此時我們可以考慮使用 Python 內建的函數 enumerate(). 程式碼如下所示:

import xlwt

# 新建工作簿
my_workbook = xlwt.Workbook()
# 建立新的工作表物件 worksheet, 並取名為 test_sheet
sheet = 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')

程式碼解析:

  1. 首先,看一下 data, data 是一個列表型別變數,它的元素是字典型別,一共四個字典元素。
  2. 之後,再看一下 enumerate() 函數。該函數用於將一個可便利的資料物件(如列表、元組和字串) 組合為一個索引序列,同時列出資料和資料下標,一般用在 for 迴圈中。
  3. 因此,在 for 迴圈中的變數 i 代表的是列表中遍歷到的當前字典的下標,item 代表的是當前遍歷到的字典的值, item[‘name’] 表示根據鍵 ‘name’, 獲取鍵對應的值。
  4. 最後,對於 enumerate() 函數的使用,再舉一個例子。例如: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 中寫入資料的方法有了一定的掌握。如果想要了解更多關於 xlwt 模組的方法,可以參考官網檔案哦!

到此這篇關於利用Python第三方庫xlwt寫入資料到Excel工作表的文章就介紹到這了,更多相關Python xlwt寫入資料到Excel內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com