Excel

取工作簿属性

from UniversalParser import ExcelParser

workbook = ExcelParser.load('abc.xlsx')
sheet = workbook.sheets[0] # 取第一个工作簿

print(sheet.name) # 获取 sheet 的工作簿名称
print(sheet.sheetId) # 获取 sheet 的 id
print(sheet.r_id) # 获取 sheet 的 关联id
print(sheet.shape) # (行数, 列数)

取某一单元格的值

from UniversalParser import ExcelParser

workbook = ExcelParser.load('abc.xlsx')
sheet = workbook.sheets[0]

# 获取 第 A 列,第 3 行 的单元格数值
cell_v = sheet.get_cell_by_coordinate('A3')
print(cell_v)
'''等价于
'''
print(sheet['A3']) # 推荐使用此方法取值

取范围内单元格的值(切片取值)

from UniversalParser import ExcelParser

workbook = ExcelParser.load('abc.xlsx')
sheet = workbook.sheets[0]

'''获取从单元格 'A1' 至 'B5' 范围内的所有值
(注意第二个值 B5 必须在 A1 的右下角,可以重叠)

返回一个列表,列表内的每个值代表行。
'''
print(sheet['A1':'B5']) 
# "输出:[['1', '2'], ['2', '3'], ['3', '4'], ['4', '5'], ['5', '6']]"
不仅支持 .xlsx 文件解析,同时也支持 .xlsm 解析。更多的功能正在实现中,路漫漫其修远兮。

更高级一点的切片

from UniversalParser import ExcelParser

workbook = ExcelParser.load('abc.xlsx')
sheet = workbook.sheets[0]

'''获取A、B两列,1~5行的所有单元格的值

下面的写法均等价(行限制在前,列限制在后)
'''
print(sheet[1:5, 'A':'B'])
print(sheet[1:5, 1:'B']) # 'A' 可以写成 1,表示第一列
print(sheet[1:5, 'A':2]) # 'B' 可以写成 2,表示第二列 
print(sheet[1:5, 1:2])
print(sheet[1:5:1, 'A':'B':1]) # 默认的步数是1


'''获取A、B两列,第1、3、5行的所有单元格的值
'''
print(sheet[1:5:2, 'A':'B'])

'''获取所有奇数列,第1~5行的所有单元格的值
'''
print(sheet[1:5, 1:2:2])