Python/Python Pandas
Python Pandas & openpyxl : alignment (텍스트 정렬)
CosmosProject
2024. 2. 27. 21:37
728x90
반응형
openpyxl의 alignment를 이용하면 셀에 적힌 텍스트의 정렬을 할 수 있습니다.
import pandas as pd
from openpyxl.styles import Alignment
dict_test = {
'col1': [1, 2, 3, 4, 5],
'col2': ['apple', 'banana', 'cloud', 'dream', 'electron'],
'col3': [1234, 0.27383720, 39372, None, 102947291.293472],
'col4': [0.9, 0.5238, 0.13, 0.0028, 1024.29278],
}
df_test = pd.DataFrame(dict_test)
xlsx_writer = pd.ExcelWriter('test.xlsx', engine='openpyxl')
df_test.to_excel(xlsx_writer, sheet_name='test', index=False)
worksheet = xlsx_writer.sheets['test']
cell = worksheet['B4']
cell.alignment = Alignment(
horizontal='center', # 가로 방향 정렬 설정
vertical='center' # 세로 방향 정렬 설정
)
xlsx_writer.close()
위 코드는 B4 cell의 객체를 가져와서 B4 cell의 정렬을 하는 코드입니다.
위 코드의 결과는 아래와 같습니다.
B4 cell에 적힌 cloud라는 텍스트가 중앙에 정렬 되어있는 것이 보이시죠.
horizontal='center' -> 가로 방향 정렬을 가운데로 맞춥니다.
vertical='center' -> 세로 방향 정렬을 가운데로 맞춥니다.
아래는 horizontal option, vertical option 각각에 사용할 수 있는 키워드입니다.
- horizontal option = {'right', 'general', 'fill', 'center', 'centerContinuous', 'distributed', 'justify', 'left'}
- vertical option = {'top', 'distributed', 'justify', 'center', 'bottom'}
추가로 Alignment에는 indent 옵션도 있습니다.
import pandas as pd
from openpyxl.styles import Alignment
dict_test = {
'col1': [1, 2, 3, 4, 5],
'col2': ['apple', 'banana', 'cloud', 'dream', 'electron'],
'col3': [1234, 0.27383720, 39372, None, 102947291.293472],
'col4': [0.9, 0.5238, 0.13, 0.0028, 1024.29278],
}
df_test = pd.DataFrame(dict_test)
xlsx_writer = pd.ExcelWriter('test.xlsx', engine='openpyxl')
df_test.to_excel(xlsx_writer, sheet_name='test', index=False)
worksheet = xlsx_writer.sheets['test']
cell = worksheet['B4']
cell.alignment = Alignment(
indent=10 # 10만큼 indent
)
xlsx_writer.close()
위 코드를 실행한 결과는 다음과 같습니다.
보면 B4 cell에 적힌 텍스트 앞에 공백이 생긴 것을 볼 수 있습니다.
B4 cell을 더블클릭해보면 이 공백이 단순히 space bar 또는 tab으로 이뤄진 것이 아니라 indent되었다는 것을 알 수 있습니다.
728x90
반응형