xlrd學習使用

2022-09-11 10:30:16 字數 3513 閱讀 6169

#

windows 安裝

pip install xlrd

#mac 安裝

pip3 install xlrd

1.匯入xlrd

import xlrd
2.開啟excel

#

新增檔案路徑

excel_path = os.path.join(os.path.dirname(__file__), r'

data\test_data.xlsx')

#開啟excel

excel_file = xlrd.open_workbook(excel_path)

3.獲取乙個工作表

#

根據sheet索引或者名稱獲取sheet內容,同時獲取sheet名稱、行數、列數

#通過索引順序獲取

sheet1_index =excel_file.sheet_by_index(0)

print

(sheet1_index.name, sheet1_index.nrows, sheet1_index.ncols)

#通過名稱獲取

sheet1_name = excel_file.sheet_by_name('

sheet1')

print(sheet1_name.name, sheet1_name.nrows, sheet1_name.ncols)x

4.獲取表單某行、某列的內容

#

根據sheet名稱或索引獲取整行和整列的值

rows =sheet1_name.row_values(0)

cols =sheet1_index.col_values(0)

print

(rows)

print(cols)

5.獲取指定單元格資料

print(sheet1_name.cell(1,0))

print(sheet1_name.cell_value(1,0))

print(sheet1_name.row(0)[3].value)

print(sheet1_name.col(2)[1].value)

6.迴圈行列表資料

nrows =sheet1_name.nrows

for x in

range(nrows):

print(sheet1_name.row_values(x))

測試合併單元格的.xlsx

用xlrd普通的做法操作合併單元格

import

osimport

xlrd

excel_path = os.path.join(os.path.dirname(__file__), r'

data\test_data.xlsx')

workbook =xlrd.open_workbook(excel_path)

sheet = workbook.sheet_by_name('

sheet1')

#讀取資料

print('

value1:

',sheet.cell_value(0,0))

print('

value2:

',sheet.cell_value(1,0))

print('

value3:

',sheet.cell_value(2,0))

print('

value4:

',sheet.cell_value(3,0))

讀取內容

value1: 事件

value2: 學習python程式設計

value3:

value4:

總結:每乙個合併單元格,只有左上角的那個cell(行列最小)能夠讀出值,其它cell都是empty。這就是xlrd模組讀取合併單元格的特點。

獲取merged_cells

import

osimport

xlrd

excel_path = os.path.join(os.path.dirname(__file__), r'

data\test_data.xlsx')

workbook =xlrd.open_workbook(excel_path)

sheet = workbook.sheet_by_name('

sheet1')

merged =sheet.merged_cells

print(merged)

列印內容:

[(1, 5, 0, 1), (3, 5, 3, 4)]
總結:merged_cells 返回的是乙個列表,每乙個元素是合併單元格的位置資訊的陣列,陣列包含四個元素(起始行,結束行,起始列,結束列)

判斷cell是否在合併單元格內

def

inmerged(row,col):

for merged in

sheet.merged_cells:

if (row >= merged[0] and row and col >= merged[2] and col ]):

return

true

return

false

print(inmerged(1,0))

print(inmerged(2,0))

print(inmerged(0,0))

true

true

false

讀取合併單元格內的cell

def

cell_real_value(row,col):

for merged in

sheet.merged_cells:

if (row >= merged[0] and row < merged[1] and col >= merged[2] and col < merged[3]):

return sheet.cell_value(merged[0],merged[2])

return

sheet.cell_value(row,col)

print

(cell_real_value(0,0))

print(cell_real_value(1,0))

print(cell_real_value(2,0))

print(cell_real_value(3,3))

print(cell_real_value(4,3))

事件

學習python程式設計

學習python程式設計

100.0

100.0

總結:

xlrd模組使用簡介

0 empty,1 string text 2 number,3 date,4 boolean,5 error,6 blank import xlrd data xlrd.open workbook filename excel中最重要的方法就是book和sheet的操作。table data.sh...

Python的xlrd庫使用

應用背景 基於專案為了完成web頁面自動化指令碼的資料和元素管理,所以採用excel文件管理這些資料。據目前了解,xlrd庫適用於讀取excel的資料,寫資料以及格式化資料使用的其它的庫,由於不是經常使用已經忘了,以下附上excel文件的資料處理 import xlrd class exe def ...

使用xlrd模組操作Excel

table data.sheets 0 table data.sheet by index 0 print table 獲取正行或是整列的值 con table.row values 0 356.0,星際牛仔 n 26話 1998年10月23日 渡辺信一郎 矢立肇 川元利浩 9.1,4021人評分 ...