当前位置: 首页 > 面试题库 >

在xslxwriter中模拟自动拟合列

有耀
2023-03-14
问题内容

我想在Python的xlsxwriter中模拟Excel自动拟合功能。根据此网址,不直接支持它:http
:
//xlsxwriter.readthedocs.io/worksheet.html

但是,在工作表中的每个单元格之间循环并确定列的最大大小,然后使用worksheet.set_column(row,col,width)设置宽度应该非常简单。

使我无法撰写本文的复杂因素包括:

  1. 该URL未指定set_column的第三个参数的单位。
  2. 我找不到一种方法来测量要插入单元格中的项目的宽度。
  3. xlsxwriter似乎没有读回特定单元格的方法。这意味着我在编写单元格时需要跟踪每个单元格的宽度。如果我可以循环遍历所有单元会更好,这样可以编写通用例程。

问题答案:

通常,您希望列的宽度比列中最长的字符串的大小大一些。xlsxwriter列的1个单位的with大约等于一个字符的宽度。因此,您可以通过将每列设置为该列中的最大字符数来模拟自动调整。

例如,在处理pandas数据框和xlsxwriter时,我倾向于使用以下代码。

它首先找到索引的最大宽度,该宽度始终是熊猫对excel渲染的数据框的左列。然后,它返回所有值的最大值和左向右移动的其余各列的列名。

对于您正在使用的任何数据,使此代码适应起来都不应该太困难。

def get_col_widths(dataframe):
    # First we find the maximum length of the index column   
    idx_max = max([len(str(s)) for s in dataframe.index.values] + [len(str(dataframe.index.name))])
    # Then, we concatenate this to the max of the lengths of column name and its values for each column, left to right
    return [idx_max] + [max([len(str(s)) for s in dataframe[col].values] + [len(col)]) for col in dataframe.columns]

for i, width in enumerate(get_col_widths(dataframe)):
    worksheet.set_column(i, i, width)


 类似资料:
  • 我有一个显示卡片视图的带有GridLayoutManager的RecyclerView。我希望卡片根据屏幕大小重新排列(Google Play应用程序使用其应用程序卡片做这种事情)。这里有一个例子: 以下是我的应用程序目前的外观: 如您所见,卡片只是拉伸,不适合由方向更改形成的空白空间。那么我该怎么做呢? 代码: 片段布局: 片段项目布局:

  • 问题内容: 我正在开发一个Web应用程序,该应用程序显然在iOS设备中存在问题。问题是我不拥有iOS设备,而是在Linux Ubuntu中进行开发。我正在寻找一种在Linux(尤其是浏览器)中仿真/模拟此OS的方法,但是还没有找到任何东西。 到目前为止,我发现的是iOS SDK的Simulator,但这是针对Mac的。还有一些Windows模拟器。有人做过吗? 问题答案: 我能想到的唯一解决方案是

  • 我有一个类。并且我已经编写了一个类的单元测试方法的类。我的代码如下:- 在我的单元测试课上,我编写了以下方法。 当我执行测试类,我得到错误。这是因为在类中,在方法的第8行中,学生机构映射字段为null。这只发生在模拟对象上。如何获得模拟对象的自动生成字段?

  • 在前几节基于Fashion-MNIST数据集的实验中,我们评价了机器学习模型在训练数据集和测试数据集上的表现。如果你改变过实验中的模型结构或者超参数,你也许发现了:当模型在训练数据集上更准确时,它在测试数据集上却不一定更准确。这是为什么呢? 训练误差和泛化误差 在解释上述现象之前,我们需要区分训练误差(training error)和泛化误差(generalization error)。通俗来讲,

  • 我想知道是否有办法模拟正在自动连线的场。 考虑下面的情况。 我有一个班级名A 另一个B类看起来像这样 现在我想为这个方法编写junit。 我知道有一种方法可以像这样模拟自动连线场。 但我的问题是- eg 请提出建议,否则就没有办法了???? 我不想改变私人生活。我也不想添加getter和setter或reflection。我只是想知道,在创建一个类的新对象之后,有没有办法模拟B实例。

  • 我使用的是多次,每次都负责训练一个层块,其他层被冻结 奇怪的是,在第二次拟合中,第一个历元的精度远低于第一次拟合的最后一个历元的精度。 纪元40/40 6286/6286 [==============================] - 14s 2ms/样品-损耗: 0.2370-精度: 0.9211-val_loss: 1.3579-val_accuracy:0.6762 874/874 [