首頁 > 軟體

Python自動化辦公之讀取Excel資料的實現

2022-05-18 10:01:24

前言

之前的章節我們學習了 python 關於 word 檔案相關操作的知識點,從今天開始講學習關於 excel 的相關操作,來看一下關於即將學習的 excel 相關知識點都有哪些?

  • 如何讀取 excel 檔案
  • 如何生成 excel 檔案
  • 如何在 excel 中生成基礎的圖表

目標:實現對 excel 的最基礎的讀寫內容

該篇章所使用的新的模組

xlrd —> excel 的讀取模組

xlsxwriter —> excel 的寫入模組

ps:excel 的操作在 python中有多個模組,為了能夠快速使用,這裡我們選擇了相對簡單並且功能較為全面的模組來為大家做介紹。

Excel 讀取 - xlrd

xlrd 的安裝

安裝方式:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple xrld==1.2.0

這裡可能大家會有疑問,為何要指定 xrld 的版本號。原始更高階的版本,存在著一些不相容的問題,所以在該章節我們使用 1.2.0 版本。

匯入:

import xlrd

常用函數介紹

獲取 excel 物件

使用方法:

book = xlrd.open_workbook(excel檔案) 這裡的 book 就是 excel 物件

返回值:

excel 物件

程式碼範例如下:

# coding:utf-8
import xlrd

excel = xlrd.open_workbook('study.xlsx')
print(excel)

執行結果如下:

獲取工作簿

在 excel 表格中存在多個工作簿,獲取工作簿有三種常用方式。

函數名說明
book.sheet_by_name()按照工作簿名稱獲取
book.sheet_by_index()按照索引獲取
book.sheets()獲取所有工作簿列表

程式碼範例如下:

# coding:utf-8
import xlrd

excel = xlrd.open_workbook('study.xlsx')
# print(excel)

book = excel.sheet_by_name('學生手冊')
print(book)

book = excel.sheet_by_index(0)
print(book.name)

執行結果如下:

ps:在不知道工作簿名稱的情況下也可以通過 for 迴圈的方式列印輸出所有的工作簿名稱:

# coding:utf-8
import xlrd

excel = xlrd.open_workbook('study.xlsx')
# print(excel)

book = excel.sheet_by_name('學生手冊')
print(book)

book = excel.sheet_by_index(0)
print(book.name)

for i in excel.sheets():
    print(i.name)

讀取工作簿內容

函數名說明
sheet.nrows返回總行數
sheet.ncols返回總列數
sheet.get_rows()返回每行內容列表

程式碼範例如下:

# coding:utf-8

import xlrd

excel = xlrd.open_workbook('study.xlsx')
# print(excel)

book = excel.sheet_by_name('學生手冊')
print(book)

book = excel.sheet_by_index(0)
print(book.name)

for i in excel.sheets():
    print(i.name)

print("當前 excel 檔案共有:", book.nrows, "行")
print("當前 excel 檔案共有:", book.ncols, "列")

for i in book.get_rows():       # for 迴圈獲取每一行的內容
    content = []                # 定義一個空列表,用以儲存每一次迴圈獲取的內容
    for j in i:                 # for 迴圈獲取每一行的每一小格的內容,然後新增到 content 空列表
        content.append(j.value)
    print(content)

執行結果如下:

到此這篇關於Python自動化辦公之讀取Excel資料的實現的文章就介紹到這了,更多相關Python讀取Excel資料內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


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