前提・実現したいこと
- pythonでopenpyxlのunmerge関数を使用して結合しているセルを解除したい。
- unmerge関数の範囲は行列の数値をcoordinateで変換したものを使いたい
- エクセルの結合しているセルのアドレスはA1とB1。
発生している問題・エラーメッセージ
エラーメッセージ --------------------------------------------------------------------------- TypeError Traceback (most recent call last) ~/opt/anaconda3/lib/python3.7/site-packages/openpyxl/descriptors/base.py in _convert(expected_type, value) 54 try: ---> 55 value = expected_type(value) 56 except: TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType' During handling of the above exception, another exception occurred: TypeError Traceback (most recent call last) <ipython-input-20-0d2c9627c48a> in <module> ----> 1 sh.unmerge_cells('a:b') ~/opt/anaconda3/lib/python3.7/site-packages/openpyxl/worksheet/worksheet.py in unmerge_cells(self, range_string, start_row, start_column, end_row, end_column) 598 """ Remove merge on a cell range. Range is a cell range (e.g. A1:E1) """ 599 cr = CellRange(range_string=range_string, min_col=start_column, min_row=start_row, --> 600 max_col=end_column, max_row=end_row) 601 602 if cr.coord not in self.merged_cells: ~/opt/anaconda3/lib/python3.7/site-packages/openpyxl/worksheet/cell_range.py in __init__(self, range_string, min_col, min_row, max_col, max_row, title) 54 55 self.min_col = min_col ---> 56 self.min_row = min_row 57 self.max_col = max_col 58 self.max_row = max_row ~/opt/anaconda3/lib/python3.7/site-packages/openpyxl/descriptors/base.py in __set__(self, instance, value) 103 if ((self.allow_none and value is not None) 104 or not self.allow_none): --> 105 value = _convert(self.expected_type, value) 106 if value < self.min: 107 raise ValueError('Min value is {0}'.format(self.min)) ~/opt/anaconda3/lib/python3.7/site-packages/openpyxl/descriptors/base.py in _convert(expected_type, value) 55 value = expected_type(value) 56 except: ---> 57 raise TypeError('expected ' + str(expected_type)) 58 return value 59 TypeError: expected <class 'int'>
該当のソースコード
python
1ソースコード 2import openpyxl as px 3wb = px.load_workbook('ファイル名') 4sh = wb['シート名'] 5a = sh.cell(row=1,column=1).coordinate 6b = sh.cell(row=1,column=2).coordinate 7sh.unmerge_cells('a:b') 8wb.save('ファイル名') 9 10
試したこと
aが'A1'、bが'B1'となっていることはprintにて確認。
sh.unmerge_cells('A1:B1')にてセルが解除できたのは確認。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/10 22:46