セルの結合
操作方法:
1. を使用します。 xlrd 独自の属性: merged_cells
# テーブル内の結合されたすべてのセルの位置を取得し、リスト形式で返します (開始行、終了行、開始列、終了列)。
merged =sheet.merged_cells #Result: [(1,5,0,1),(5,9,0,1)]
2. ループを使用して、は結合されたユニットです セルは依然として通常のセルであり、結合されたセルの最初の行の値が結合されたセルに割り当てられます
def get_cell_type(row_index, col_index): """既能得到合并单元格也能得到普通单元格""" cell_value = None for (rlow, rhigh, clow, chigh) in merged: # 遍历表格中所有合并单元格位置信息 # print(rlow,rhigh,clow,chigh) if (row_index >= rlow and row_index < rhigh): # 行坐标判断 if (col_index >= clow and col_index < chigh): # 列坐标判断 # 如果满足条件,就把合并单元格第一个位置的值赋给其它合并单元格 cell_value = sheet.cell_value(rlow, clow) print('合并单元格') break # 不符合条件跳出循环,防止覆盖 else: print('普通单元格') cell_value = sheet.cell_value(row_index, col_index) # else: 添加改行后只那一个单元格的内容5,0 会返回2个值普通单元格/合并单元格 # print('普通单元格') # cell_value = sheet.cell_value(row_index, col_index) return cell_value # 直接输入单元格的坐标。来获取单元格内容 # print(get_cell_type(5, 0)) # 利用循环输出某列的单元格内容 for i in range(1, 9): print(get_cell_type(i, 2))
PS: Excel ファイル内の結合されたセルを読み取る最も簡単な操作
質問:
1. コンテンツを出力するとき、座標を使用して印刷を取得します。最外層にelseがある場合、2つの値が返されます(最も外側の else がない場合、他の値があるかどうかをまだ確認しています。問題が存在します)
2. 初めて使用したときは正常に動作しますが、sheet.merged_cells によって返されるリストは再度使用すると空になりますか? ?
解決策: 開いているファイルに formatting_info=True を追加すると、正常に表示されます
以上がこの記事の全内容です。皆さんの学習に役立つことを願っています。
関連する学習に関する推奨事項: Python ビデオ チュートリアル
以上がPython で xlrd を使用して結合されたセルを読み取る方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。