相关疑难解决方法(0)

openpyxl - 调整列宽大小

我有以下脚本将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)
Run Code Online (Sandbox Code Playgroud)

python openpyxl

54
推荐指数
8
解决办法
9万
查看次数

Python xlwt - 访问现有单元格内容,自动调整列宽

我正在尝试创建一个Excel工作簿,我可以在保存工作簿之前自动设置或自动调整列的宽度.

我一直在阅读的Python的Excel的教程中找到在xlwt是模仿xlrd者某些功能的希望(如sheet_names(),cellname(row, col),cell_type,cell_value,等...).例如,假设我有以下几点:

from xlwt import Workbook    
wb = Workbook()
sh1 = wb.add_sheet('sheet1' , cell_overwrite_ok = True)    
sh2 = wb.get_sheet(0)
Run Code Online (Sandbox Code Playgroud)

wb.get_sheet(0)类似于rb.sheet_by_index(0)xlrd中提供的功能,除了前者允许您修改内容(前提是用户已设置cell_overwrite_ok = True)

假设xlwt DOES提供了我正在寻找的功能,我计划再次浏览每个工作表,但这次要跟踪占用特定列的空间最多的内容,并根据该列设置列宽.当然,我也可以在写入工作表时跟踪特定列的最大宽度,但我觉得在已经写完所有数据后设置宽度会更清晰.

有谁知道我能做到吗?如果没有,你建议做什么来调整列宽?

python xlrd xlwt

27
推荐指数
3
解决办法
3万
查看次数

如何在openpyxl中将列宽设置为bestFit

我已经在工作表中填充了一些数据,并且我正在尝试使列宽度假设最适合,如下所示。基本上是双击列宽调整分隔符时发生的自动调整。

这是我的最小示例,就我对openpyxl文档的理解而言,它应该有效:

import openpyxl
from typing import NoReturn

def columns_best_fit(ws: openpyxl.worksheet.worksheet.Worksheet) -> NoReturn:
    """
    Make all columns best fit
    """
    column_letters = tuple(openpyxl.utils.get_column_letter(col_number + 1) for col_number in range(ws.max_column))
    for column_letter in column_letters:
        dim = openpyxl.worksheet.dimensions.ColumnDimension(ws, index=column_letter, bestFit=True, customWidth=True)
        ws.column_dimensions[column_letter] = dim


wb = openpyxl.Workbook()
ws = wb.active
ws.append(("Long Column Header 1", "Even Longer Column Header 2"))
ws.append(("some data", "more data"))
columns_best_fit(ws)
wb.save("column_width_test.xlsx")
Run Code Online (Sandbox Code Playgroud)

然而,当我打开生成的文件时,列只是稍微宽一点,但肯定不是最合适的。

python openpyxl

17
推荐指数
2
解决办法
3万
查看次数

如何在python中获取文本字符串的可视长度

此问题类似,我不是在问如何查找字符串中的字符数.我想确定渲染字符串的可视长度或将其与另一个字符串进行比较.

例如,'iiii'和'WWWW'都有四个字符.但是,'iiii'在视觉上较短.我知道这是由字体决定的,我不使用等宽字体.因此,出于这个问题的目的,我将使用Arial 10pt.

是否有任何内置模块可以提供给定字体的字符串的视觉尺寸?

python string

6
推荐指数
2
解决办法
5364
查看次数

标签 统计

python ×4

openpyxl ×2

string ×1

xlrd ×1

xlwt ×1