没有退路的时候,正是潜力发挥最大的时候。
如下图所示:
import xlrd
workbook = xlrd.open_workbook(‘./data/test_data.xlsx‘)
sheet = workbook.sheet_by_name(‘Sheet1‘)
cell_value = sheet.cell_value(1,0) # 获取第二行第一个单元格内容
print( "01:" + str(cell_value) )
cell_value = sheet.cell_value(2,0) # 获取第三行第一个单元格内容
print( "02:" + str(cell_value) )
cell_value = sheet.cell_value(3,0) # 获取第四行第一个单元格内容
print( "03:" + str(cell_value) )
使用上述代码,为的是打印三个已合并的单元格的值,结果如下:
01:学习python编程
02:
03:
此时会发现,合并单元格后会把数据放在合并单元格左上角第一个单元内,其它合并单元格的内容为空。如果是这样读取数据不太合理,最好是做到所有合并的单元格都能显示单元格的值,即第三行、第四行都显示 学习python编程
import xlrd
workbook = xlrd.open_workbook(‘./data/test_data.xlsx‘)
sheet = workbook.sheet_by_name(‘Sheet1‘)
# merged_cells 获取当前表格所有合并单元格的位置信息 ,返回一个列表
print( sheet.merged_cells )
执行上述代码的结果如下:
[(1, 5, 0, 1)]
merged_cells 返回的是一个列表,每一个元素是合并单元格的位置信息的数组,数组包含四个元素(起始行,结束行,起始列,结束列)
import xlrd
workbook = xlrd.open_workbook(‘./data/test_data.xlsx‘)
sheet = workbook.sheet_by_name(‘Sheet1‘)
# merged_cells 获取当前表格所有合并单元格的位置信息 ,返回一个列表
merged = sheet.merged_cells
row_index = 3 ; col_index = 0
for (rlow, rhigh, clow, chigh) in merged: # 遍历表格中所有合并单元格位置信息
if (row_index >= rlow and row_index < rhigh): # 行坐标判断
if (col_index >= clow and col_index < chigh): # 列坐标判断
# 如果满足条件,就把合并单元格第一个位置的值赋给其它合并单元格
cell_value = sheet.cell_value(rlow,clow)
print( cell_value )
利用循环的方式去判断要取值的单元格是否是合并单元格,如果是则把第一个位置的值赋给其它合并单元格,上述代码只考虑合并单元格的情况。
python常识系列15-->python利用xlrd处理合并单元格
原文:https://www.cnblogs.com/dream66/p/13198686.html