Python幫你玩轉Excel文檔之xlrd模塊的基本詳細操作

閱讀前小讀:
(1)本博文針對的Excel文檔是以 .xls 結尾的文檔
(2)此次操作的文檔來源爲國家統計局官網中的季度數據,大家也可以登陸國家統計局官網自行下載
(3)一個Excel文檔等價於一個“工作簿”,一個“工作簿”中又可包含多個“工作表”
(4)給出所用表的相關信息:
在這裏插入圖片描述

1.導入模塊

第一行代碼用於對整體 .py 文件的字符格式設置,防止出現代碼中出現中文時亂碼或者報錯

#coding=utf-8
import xlrd

2.獲取工作薄(workbook)

創建工作簿(workbook)
返回類型 <xlrd.book.Book object at 0x000002DB9D3DC4A8>

#創建工作簿(workbook),返回類型 <xlrd.book.Book object at 0x000002DB9D3DC4A8>
workbook = xlrd.open_workbook('季度數據.xls')

3.獲得工作表(worksheet)相關信息的操作

(print 下的註釋爲本 print 的輸出)

#獲得所有worksheet的名字
names = workbook.sheet_names()
print(names)
#['季度數據']

#通過索引獲得worksheet工作表對象
worksheet = workbook.sheet_by_index(0)
print(worksheet)
#<xlrd.sheet.Sheet object at 0x000001C050D36B38>

#通過名字獲得worksheet工作表對象
worksheet = workbook.sheet_by_name('季度數據')
print(worksheet)
#<xlrd.sheet.Sheet object at 0x000001C050D36B38>

#通過索引順序獲取
worksheet = workbook.sheets()[0]
print(worksheet)
#<xlrd.sheet.Sheet object at 0x000001A480A47B70>

#檢查某個sheet是否導入完畢
print(workbook.sheet_loaded(0))
print(workbook.sheet_loaded('季度數據'))
# True
# True

#獲取所有表名
name = worksheet.name
print(name)
#季度數據

4.對於工作表"行"的操作

'''對於工作表行的操作'''
#獲取表的總行數
nrows = worksheet.nrows
print(nrows)
# 19

#返回該行所有單元格對象組成的列表,這個行數的下表是從0開始的
list_1 = worksheet.row_slice(3)
print(list_1)
#[text:'國內生產總值當季值(億元)', number:278019.7, number:252208.7, number:242573.8, number:218062.8, number:258808.9, number:234474.3]

#返回該行所有單元格的數據類型組成的列表
list_2 = worksheet.row_types(3,start_colx=0,end_colx=None)
print(list_2)
#array('B', [1, 2, 2, 2, 2, 2, 2])

#返回該行所有單元格的數據組成的列表
list_3 = worksheet.row_values(3,start_colx=0,end_colx=None)
print(list_3)
#['國內生產總值當季值(億元)', 278019.7, 252208.7, 242573.8, 218062.8, 258808.9, 234474.3]

#返回該行的有效單元格長度
print(worksheet.row_len(3))
# 7

5.對於工作表"列"的操作


'''對於工作表列的操作'''
#獲取有效列
ncols = worksheet.ncols
print(ncols)

#返回該行所有單元格對象組成的列表,這個行數的下表是從0開始的
list_4 = worksheet.col_slice(0)
print(list_4)
#[text:'數據庫:季度數據', text:'時間:最近6季度', text:'指標', text:'國內生產總值當季值(億元)', text:'國內生產總值累計值(億元)', text:'第一產業增加值當季值(億元)', text:'第一產業增加值累計值(億元)', text:'第二產業增加值當季值(億元)', text:'第二產業增加值累計值(億元)', text:'第三產業增加值當季值(億元)', text:'第三產業增加值累計值(億元)', text:'農林牧漁業增加值當季值(億元)', text:'農林牧漁業增加值累計值(億元)', text:'工業增加值當季值(億元)', text:'注:1.按當年價格計算。累計數據由當季數據相加得到。', text:'\u3000\u3000\u30002.三次產業分類依據國家統計局2018年修訂的《三次產業劃分規定》。第一產業是指農、林、牧、漁業(不含農、林、牧、漁專業及輔助性活動);第二產業是指採礦業(不含開採專業及輔助性活動),製造業(不含金屬製品、機械和設備修理業),電力、熱力、燃氣及水生產和供應業,建築業;第三產業即服務業,是指除第一產業、第二產業以外的其他行業。', text:'\u3000\u3000\u30003.行業分類採用《國民經濟行業分類(GB/T 4754-2017)》。', text:'\u3000\u3000\u30004.2015年之前各季度,其他服務業包含信息傳輸、軟件和信息技術服務業,租賃和商務服務業,科學研究和技術服務業,水利、環境和公共設施管理業,居民服務、修理和其他服務業,教育,衛生和社會工作,文化、體育和娛樂業,公共管理、社會保障和社會組織共9個門類行業;2015年及之後各季度,其他服務業包含科學研究和技術服務業,水利、環境和公共設施管理業,居民服務、修理和其他服務業,教育,衛生和社會工作,文化、體育和娛樂業,公共管理、社會保障和社會組織共7個門類行業。', text:'數據來源:國家統計局']

# 返回該行所有單元格的數據類型組成的列表
list_5 = worksheet.col_types(0,start_rowx=2,end_rowx=None)
print(list_5)
#[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

# 返回該行所有單元格的數據組成的列表
list_6 = worksheet.col_values(0,start_rowx=2,end_rowx=None)
print(list_6)
#['指標', '國內生產總值當季值(億元)', '國內生產總值累計值(億元)', '第一產業增加值當季值(億元)', '第一產業增加值累計值(億元)', '第二產業增加值當季值(億元)', '第二產業增加值累計值(億元)', '第三產業增加值當季值(億元)', '第三產業增加值累計值(億元)', '農林牧漁業增加值當季值(億元)', '農林牧漁業增加值累計值(億元)', '工業增加值當季值(億元)', '注:1.按當年價格計算。累計數據由當季數據相加得到。', '\u3000\u3000\u30002.三次產業分類依據國家統計局2018年修訂的《三次產業劃分規定》。第一產業是指農、林、牧、漁業(不含農、林、牧、漁專業及輔助性活動);第二產業是指採礦業(不含開採專業及輔助性活動),製造業(不含金屬製品、機械和設備修理業),電力、熱力、燃氣及水生產和供應業,建築業;第三產業即服務業,是指除第一產業、第二產業以外的其他行業。', '\u3000\u3000\u30003.行業分類採用《國民經濟行業分類(GB/T 4754-2017)》。', '\u3000\u3000\u30004.2015年之前各季度,其他服務業包含信息傳輸、軟件和信息技術服務業,租賃和商務服務業,科學研究和技術服務業,水利、環境和公共設施管理業,居民服務、修理和其他服務業,教育,衛生和社會工作,文化、體育和娛樂業,公共管理、社會保障和社會組織共9個門類行業;2015年及之後各季度,其他服務業包含科學研究和技術服務業,水利、環境和公共設施管理業,居民服務、修理和其他服務業,教育,衛生和社會工作,文化、體育和娛樂業,公共管理、社會保障和社會組織共7個門類行業。', '數據來源:國家統計局']

6.精準獲取某一單元格的數據

'''精準獲取某一單元格的數據'''
print(worksheet.cell_value(1,3))
print(worksheet.cell(0,3).value)

7.個人學習筆記

在這裏插入圖片描述

😁

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章