gpt4 book ai didi

Ruby Axlsx Gem 整列解锁样式

转载 作者:太空宇宙 更新时间:2023-11-03 17:48:15 25 4
gpt4 key购买 nike

将 Ruby 与 gem axlsx 结合使用 我一直在尝试弄清楚如何为整个列设置样式,但我还没有找到它。我能够做到这一点的唯一方法是循环,将行中的每个单元格设置为我想要的样式,例如:

unlocked = wb.styles.add_style :locked => false
#...looping code here, assuming add_worksheet has been assigned to sheet
sheet.rows[rowNum].cells[columnNum].style = unlocked

我发现了如何为整个列设置隐藏属性:

sheet.column_info[3].hidden = true

根据文档,我认为这条线可以工作:

sheet.column_info[0].style = unlocked

最奇怪的是,这个样式集行并没有应用失败,而且确实在看起来显示样式设置为从 add_style 返回的相应数字之后查询它。但是,在检查生成的电子表格时,它并没有将整个列显示为已解锁。

我知道这可以使用 write_xlsx gem 在整个专栏上很容易地完成,所以我想知道是否可以使用 axlsx 来完成,但我只是找不到要使用的正确语法的示例?

最佳答案

为此,您可以使用 Worksheet#col_style签名是 col_style(index,style,options={})

索引

要为其设置样式的行的索引(索引从 0 开始)。索引也可以是一个范围,因此如果您想解锁列 A 到 C,则 sheet.col_style((0..2),unlocked) 仍将根据代码的运行方式正常工作。

风格

必须是预定义的样式,因为它在 gem 的其余部分中都是如此

选项 ={}

options 允许您设置行偏移量,因此如果您不想解锁前 n 行,您可以传递 row_offset: nn 行之后的列将被解锁。示例:

#unlock cells in column A starting at A3
sheet.col_style(0,unlocked,row_offset: 2)

完整示例

require 'axlsx'
p = Axlsx::Package.new
wb = p.workbook
unlocked = wb.styles.add_style(locked: false)
wb.add_worksheet do |sheet|
5.times { sheet.add_row [1,2,3,4,5,6]}
sheet.col_style(3,unlocked)
end
p.serialize('/simple_test.xlsx')

这将创建一个包含 6 列的电子表格,其中 4 列(索引从 0 开始)将被解锁,而其余列保持锁定(默认)。

附加信息

此方法的返回值将是受影响单元格的平面 Array

注意:代码的作用与您在循环中所做的几乎完全相同。它收集所有单元格,然后将样式应用于循环中的每个单元格。

关于Ruby Axlsx Gem 整列解锁样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30398594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com