如何在openpyxl中进行列对齐?

N. *_*maa 0 python excel openpyxl

我试图在 openpyxl 中对齐一列但没有成功:

wb = Workbook()
ws = wb.active
Run Code Online (Sandbox Code Playgroud)

....

ws.column_dimensions["A"].alignment = Alignment(horizontal='left')
ws.column_dimensions["C"].alignment = Alignment(horizontal='center')
Run Code Online (Sandbox Code Playgroud)

同样适用于:

ws["A"].alignment = Alignment(horizontal='left')
ws["C"].alignment = Alignment(horizontal='center')
Run Code Online (Sandbox Code Playgroud)

这对我不起作用。
否则,遍历单元格并进行对齐工作正常!

sto*_*vfl 6

你应该得到失败的回溯!
如果您提出问题,请向我们展示这个!

ws["A"].alignment = Alignment(horizontal='left')
 AttributeError: 'tuple' object has no attribute 'alignment'
Run Code Online (Sandbox Code Playgroud)

没有实现范围甚至整列的样式。你必须自己做。例如:

for row in rows:
    cell_A = row[:1][0]
    cell_A.alignment = Alignment(horizontal='left')  
Run Code Online (Sandbox Code Playgroud)

用 Python 测试:3.4.2 - openpyxl:2.4.1 - LibreOffice:4.3.3.2


Ado*_*obe 6

from openpyxl import load_workbook
from openpyxl.styles import Alignment

xlsx_file = 'file.xlsx'

# openning:
wb = load_workbook(filename = xlsx_file)

# center align column H in the default sheet:
ws = wb.active
for row in ws[2:ws.max_row]:  # skip the header
    cell = row[7]             # column H
    cell.alignment = Alignment(horizontal='center')

# saving:
wb.save(xlsx_file)
Run Code Online (Sandbox Code Playgroud)