python-openpyxl-调整列宽siz
我有以下脚本将CSV文件转换为XLSX文件,但我的列大小非常狭窄。 每次我必须用鼠标拖动它们以读取数据。 有人知道如何在openpyxl中设置列宽吗?
这是我正在使用的代码。
#!/usr/bin/python2.6
import csv
from openpyxl import Workbook
from openpyxl.cell import get_column_letter
f = open('users_info_cvs.txt', "rU")
csv.register_dialect('colons', delimiter=':')
reader = csv.reader(f, dialect='colons')
wb = Workbook()
dest_filename = r"account_info.xlsx"
ws = wb.worksheets[0]
ws.title = "Users Account Information"
for row_index, row in enumerate(reader):
for column_index, cell in enumerate(row):
column_letter = get_column_letter((column_index + 1))
ws.cell('%s%s'%(column_letter, (row_index + 1))).value = cell
wb.save(filename = dest_filename)
Satish asked 2020-02-04T17:57:32Z
9个解决方案
64 votes
您可以估计(或使用等宽字体)来实现。 假设数据是一个嵌套数组,例如[['a1','a2'],['b1','b2']]
我们可以获取每一列中的最大字符数。 然后设置宽度。 宽度正好是等宽字体的宽度(如果至少未更改其他样式)。 即使您使用可变宽度的字体,这也是一个不错的估计。 这不适用于公式。
column_widths = []
for row in dat