python-讀取excel(xlrd)


一、安裝xlrd模塊

二、常用方法

1、導入模塊

import xlrd

2、打開文件

x1 = xlrd.open_workbook("testCase.xlsx")

3、獲取sheet

print('sheet_names:', x1.sheet_names())  # 獲取所有sheet名字
print('sheet_number:', x1.nsheets)       # 獲取sheet數量
print('sheet_object:', x1.sheets())      # 獲取所有sheet對象
print('By_name:', x1.sheet_by_name("case")) # 通過sheet名查找
print('By_index:', x1.sheet_by_index(0))  # 通過索引查找

輸出:

sheet_names: ['case']
sheet_number: 1
sheet_object: [<xlrd.sheet.Sheet object at 0x10a244a58>]
By_name: <xlrd.sheet.Sheet object at 0x10a244a58>
By_index: <xlrd.sheet.Sheet object at 0x10a244a58>

4、獲取sheet的匯總數據

sheet1 = x1.sheet_by_name("case")
print("sheet name:", sheet1.name)   # get sheet name
print("row num:", sheet1.nrows)  # get sheet all rows number
print("col num:", sheet1.ncols) # get sheet all columns number

輸出:

sheet name: case
row num: 6
col num: 4

5、單元格批量讀取

行操作:

print(sheet1.row_values(0)) # 獲取第一行所有內容,合並單元格,首行顯示值,其它為空。
print(sheet1.row(0))         # 獲取單元格值類型和內容
print(sheet1.row_types(0))  # 獲取單元格數據類型

輸出:

['用戶ID', '積分', '下發原因', '部門']
[text:'用戶ID', text:'積分', text:'下發原因', text:'部門']
array('B', [1, 1, 1, 1])

列操作:

print(sheet1.row_values(0, 1, 3))   # 取第1行,第1~3列(不含第3列)
print(sheet1.col_values(0, 0, 5))    # 取第1列,第0~5行(不含第5行)
print(sheet1.row_slice(2, 0, 2))     # 獲取單元格值類型和內容,同sheet1.row(0)
print(sheet1.row_types(1, 0, 2))   # 獲取單元格數據類型

輸出:

['積分', '下發原因']
['用戶ID', '1611504', '1611504', '1611504', '1611504']
[text:'1611504', text:'0']
array('B', [1, 1])

6、特定單元格讀取

# 取值
print(sheet1.cell_value(1, 2))
print(sheet1.cell(1, 2).value)
print(sheet1.row(1)[2].value)
#取類型
print(sheet1.cell(1, 2).ctype)
print(sheet1.cell_type(1, 2))
print(sheet1.row(1)[2].ctype)

輸出:

返現
返現
返現
1
1
1

7、(0,0)轉換A1

print(xlrd.cellname(0, 0))  # (0,0)轉換成A1
print(xlrd.cellnameabs(0, 0)) # (0,0)轉換成$A$1
print(xlrd.colname(30))  # 把列由數字轉換為字母表示

輸出:

A1
$A$1
AE
8、數據類型:
  • 空:0
  • 字符串:1
  • 數字:2
  • 日期:3
  • 布爾:4
  • error:5
# 導入模塊
import xlrd
# 讀取到excel文件
data = xlrd.open_workbook("student.xlsx")
# 獲取列表
table = data.sheet_by_index(0)
# 獲取所有的行數
nrows = table.nrows
# 獲取所有的列數
ncols = table.ncols

# 獲取第一行的數據
first_row_name_list = table.row_values(0)
print(first_row_name_list)

# 定義一個列表保存所有行的數據
info_list = []
# 遍歷所有行
for rownum in range(1, nrows):
    # 獲取
    row = table.row_values(rownum)
    # 如果row有數據
    if row:
        info_list.append(row)
print(info_list)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM