【问题标题】:How to color some numbers in Excel cell using python or R如何使用 python 或 R 为 Excel 单元格中的某些数字着色
【发布时间】:2021-02-27 03:02:51
【问题描述】:

我有这个 Excel 文件示例,其中数据包含一些随机值。我使用RAND() 函数生成了这个。

我想要做的是使用 R 读取这个 excel 文件,以便我可以将数字 9 涂成红色并加粗在单元格中出现的任何位置。这可以吗?

我已经在 Google 上搜索了一段时间,但除了使用 VBA 之外,我无法通过其他任何方式找到它。但这不是一个选择。

有没有人能举例说明如何做到这一点?

【问题讨论】:

  • 您只想在数字 9 出现时加粗,还是在出现 9 时加粗整个单元格?
  • 出现时只有粗体 9 - 不是整个单元格。
  • 我在 R 中找不到任何可以格式化单元格中单个字符的内容,大多数包通过将样式应用于单元格/范围来格式化。为什么 VBA 不是一种选择?
  • @nori,感谢您的检查。我也做不到。你知道是否可以使用 R 在单元格中插入形状。这样,如果我找到 9,我可以添加某种形状。
  • @norie,VBA 不是一个选项,因为我们的组织不允许宏在我们的 PC 上运行。这就是为什么我在 python 上写一切。我发现 python 的 openpyxl 不能让我做我想做的事,但是找到了一个谷歌小组讨论 here 有人做了但不知道怎么做。这种方法对我不起作用,所以我想也许现在有一种方法可以修改单个字符的格式。

标签: r excel xlsx


【解决方案1】:

我想做的事情是不可能使用任何 python 包 - xlsxwriter 只能像我想要的那样做富文本,但只能在新单元格上但不能修改,openpyxl 可以做很多事情但不丰富文本。不确定是否可以使用 R 来完成,但似乎不可能做我想做的事。我看到了一个谷歌小组讨论here,他们展示了一种执行我想要的潜在方法,但这种方法对我不起作用。它显示.jnew 无法识别。

因此,相反,我创建了一个函数来向单元格添加一个颜色点(图像),以描绘该单元格包含我正在搜索的值 - 在本例中为 9。我不能使用条件格式的原因是因为有另一种条件格式应用于另一个逻辑。

def __add_color_dots__(self, ws=None, excel_filename=None):
   
    from openpyxl.drawing.image import Image
    import os

    path = os.path.abspath('blue-dot.png')
    image = Image(path)

    image.anchor = 'C4'

    ws.add_image(image)

    return ws

希望这对以后的人有所帮助,并且这种方法可能是一种有用的解决方法。

【讨论】:

  • “点”不是应用于单元格而不是数字吗?另外,为什么现有的条件格式会阻止您应用进一步的条件格式?
  • @norie,如果我有多个彩色点,那么我可以区分哪个颜色属于哪个数字。比如说,如果 9 = 蓝点,3 = 绿点,5 = 红点。然后,我可以在单元格中分别添加这 3 个点,以便用户查看并找到他们正在寻找的内容。如果我对 9 使用条件格式,然后对 3 使用条件格式,则 9 的格式将被 3 的格式覆盖。我将为我们需要的每个值使用这些颜色编码和字体。
猜你喜欢
  • 2017-03-25
  • 2021-10-14
  • 1970-01-01
  • 1970-01-01
  • 2013-09-01
  • 1970-01-01
  • 2011-08-19
  • 1970-01-01
相关资源
最近更新 更多