Как исправить проблему с выравниванием в xlsxwriter - PullRequest
1 голос
/ 07 ноября 2019

Я использую xlsxwriter для создания листов Excel с использованием Python. Все отлично работаетМне нужно изменить для всех строк высоту строки до 23, и первая строка кода ниже сделала это правильно. Мне также нужно вертикально выровнять текст по центру во всех строках и не смог заставить его работать. Любое предложение, как сделать это правильно. Я использую Python 3.6.

worksheet.set_default_row(23) # Set the row height for all the rows
format = workbook.add_format()
format.set_align('vcenter')

Ответы [ 2 ]

2 голосов
/ 07 ноября 2019

В соответствии с документацией здесь , вы можете добавить формат в ячейку и применять форматы при записи файла Excel

cell_format = workbook.add_format()
cell_format.set_align('vcenter')
worksheet.write(<some params>, cell_format)

. Для получения более подробной информации см. Документацию

https://xlsxwriter.readthedocs.io/format.html

1 голос
/ 07 ноября 2019

Лучший способ сделать это и способ, которым Excel делает это за кадром, это установить высоту строки с помощью worksheet.set_default_row() и форматирование с помощью worksheet.set_column().

Вот пример:

import xlsxwriter

workbook = xlsxwriter.Workbook('test.xlsx')

worksheet = workbook.add_worksheet()

# Set the default height of all the rows, efficiently.
worksheet.set_default_row(23)

# Format all the columns.
my_format = workbook.add_format()
my_format.set_align('vcenter')

worksheet.set_column('A:XFD', None, my_format)

workbook.close()

Обратите внимание, что любое форматирование, специфичное для ячейки, добавленное с помощью методов write(), перезапишет формат столбца. Любые данные, записанные без форматов, получат формат столбца.

...