首頁 > 文學

「前置知識之xlrd」Python處理Excel工作表、單元格關係詳解

作者:由 python高手養成 發表于 文學日期:2022-12-23

excel工作表的單元格中包含什麼

前言中,我們介紹了小王在實際工作中遇到的一個小案例。好在小王是個Python高手,這種問題難不倒他。俗話說:“工欲善其事、必先利其器”。如果用好了Python這個工具,日常辦公中遇到的很多關於Excel的問題,都是可以輕鬆解決的。

「前置知識之xlrd」Python處理Excel工作表、單元格關係詳解

前言

但是,用Python輕鬆解決這些日常問題的前提是,你必須對Python處理Excel使用的一些第三方庫(本專欄重點介紹xlrd、xlwt、openpyxl、pandas)有足夠了解。

「前置知識之xlrd」Python處理Excel工作表、單元格關係詳解

足夠了解哦

其實,這些第三方庫各有特點,這些特點有模組自身的特點,也有模組之間互補的特點,這些特點我們正文中有所涉及。這些特點及經驗的掌握,只有在日常使用過程中,多學、多練,才能真正做到在使用過程中游刃有餘。

「前置知識之xlrd」Python處理Excel工作表、單元格關係詳解

多練習哦

開始之前,我們看下今天需要實現的案例:一個簡單的Excel檔案預覽工具,文末會附有原始碼下載方式。

「前置知識之xlrd」Python處理Excel工作表、單元格關係詳解

案例

我們先來介紹一下xlrd模組的用法。

xlrd使用簡介及版本特點

xlrd模組是用來讀取Excel檔案的,還有一個xlwt模組用來編輯Excel檔案。兩者剛好互補,一個讀、一個寫。今天的主角是xlrd模組。

「前置知識之xlrd」Python處理Excel工作表、單元格關係詳解

xlrd讀取Excel檔案

目前,xlrd最新版(目前是2。0。1)。奇葩的是,這個最新版並不支援字尾為“xlsx”電子表格的讀取。如果要想讀取這類表格,需要將xlrd退回到之前的版本,比如:

1.2.0

,安裝方法如下:

pip install xlrd==1.2.0

當然,安裝之前,需要解除安裝最新版本,解除安裝方法:

pip uninstall xlrd

網上很多人說xlrd、xlwt不能處理字尾名為“。xlsx”的檔案。先來測試一下是不是這樣,。

我的xlrd版本是1.2.0,xlwt版本是1.3.0

【測試xlrd】

原始碼截圖如下,先使用xlwt建立一個字尾名為“。xlsx”的檔案,然後裡面任意寫入一些資料。再使用xlrd來讀取檔案。

「前置知識之xlrd」Python處理Excel工作表、單元格關係詳解

xlrd可以處理xlsx的檔案嗎?

執行結果如下,可以成功讀寫字尾為“。xlsx”的Excel檔案。

「前置知識之xlrd」Python處理Excel工作表、單元格關係詳解

執行結果展示

這兩個版本的xlrd和xlwt可以處理字尾名為“。xlsx”的表格檔案。

切忌跟著別人的說法走,自己要多嘗試、多總結。

【自身特點及模組之間特點互補】

這是xlrd、xlwt內部版本自身的特點,兩者既可以處理字尾為“。xls”的檔案,又可以處理字尾為“。xlsx”的檔案(前提是版本要對應,可以考慮安裝我示例中的兩個版本)。

但另一個模組openpyxl卻只能處理字尾為“.xlsx”的電子表格。這點小夥伴要牢記,否則在這類坑裡轉半天出不來,很浪費時間。

「前置知識之xlrd」Python處理Excel工作表、單元格關係詳解

這是個重要的知識點

xlrd模組的使用

介紹xlrd使用之前,我們先來了解下電子表格。很多小夥伴剛開始學習這些內容時,並不知道工作簿、工作表、單元格是什麼,它們之間有什麼關係,

一上手就開始照著程式碼敲,致使一些知識點一知半解,理解的並不深刻

。這裡,我們詳細介紹一下。

「前置知識之xlrd」Python處理Excel工作表、單元格關係詳解

先要理清關係

【電子表格】

一個工作簿通常以檔案的形式存放,簡單來講,就是一個Excel檔案(格式不重要),在xlrd模組中,我們將工作簿稱之為Workbook。一個工作簿裡面包含若干張工作表,xlrd模組中,我們將工作表稱之為Sheet。每一張工作表存放特定意義的資料。而每個表格是由若干單元格構成的,xlrd模組中,我們將單位格稱之為Cell。

「前置知識之xlrd」Python處理Excel工作表、單元格關係詳解

電子表格

如果單元格內有內容,模組就會認為這是個有效的單元格,在統計行數、列數時,就會將該單元格計算在有效內容之內。

「前置知識之xlrd」Python處理Excel工作表、單元格關係詳解

工作簿、工作表和單元格

因此,在操作Excel的過程中,我們一般按照先宏觀後微觀的順序進行,即先開啟工作簿、工作表,再定位到待處理的單元格進行處理。就像醫生給病人做手術,不太可能不經表皮,直接定位到病患部位直接進行手術是一個道理。

「前置知識之xlrd」Python處理Excel工作表、單元格關係詳解

順序很重要

因此,完整認識xlrd這個模組我們就照這個順序來解剖它!

首先匯入模組:import xlrd