パンダのデータフレームを取得して数百のチャンクに分割し、各チャンクを個別のExcelファイルとして保存するスクリプトがあります。各チャンクの列数は同じですが、行数は異なります。openpyxlを使用して、これらのファイルに他のすべての必要なフォーマットを適用する方法を理解しましたが、境界線を適用する最速の方法をまだ決定していません。また、以下のコード(各セルを個別にループする必要はないと思われる)は境界線を適用しないため、境界線を正しく適用していないと思います。
from openpyxl.style import Border
wb = load_workbook(filename = _fname)
ws = wb.worksheets[0]
for _row in ws.range('A1:L'+str(ws.get_highest_row() ) ):
for _cell in _row:
_cell.style.borders.left.border_style = Border.BORDER_THIN
_cell.style.borders.right.border_style = Border.BORDER_THIN
_cell.style.borders.top.border_style = Border.BORDER_THIN
_cell.style.borders.bottom.border_style = Border.BORDER_THIN
wb.save(_fname)
したがって、このコードは機能しますが、私が期待する境界線(Excelのデフォルトの境界線)は適用されず、私が望むよりもはるかに多くの手順が必要になります。私の期待は、私がこのようなことをすることができるはずだということです:
from openpyxl.style import Border
wb = load_workbook(filename = _fname)
ws = wb.worksheets[0]
_range = ws.some_range_func('A1:L'+str(ws.get_highest_row() ) ):
_range.style.borders.all_borders = Borders.BORDER_THIN
この機能は存在しますか?そうでない場合は、この少し太い境界線ではなく、デフォルトの境界線スタイルを適用する方法を少なくとも説明してくれる人がいますか?Border.BORDER_THICK、Border.BORDER_MEDIUM、Border.BORDER_THIN、Border.BORDER_HAIRのいずれも正しくないようです。
ありがとう!