【问题标题】:ruby axlsx gem: assign formula to axlsx worksheet without using add-rowruby axlsx gem:在不使用 add-row 的情况下将公式分配给 axlsx 工作表
【发布时间】:2017-06-14 14:00:14
【问题描述】:

根据官方的例子,可以在add_rowhttps://github.com/randym/axlsx/blob/master/examples/example.rb#L355时给sheet赋值公式

我的问题是当表格填满时是否可以为列分配公式?

【问题讨论】:

    标签: ruby-on-rails ruby axlsx


    【解决方案1】:

    这是一个向现有单元格添加公式的示例。

    pk = Axlsx::Package.new
    wb = pk.workbook
    sheet = wb.add_worksheet(name: 'Test')
    sheet.add_row(['First', 'Second', 'Third'])
    sheet.add_row([1, 1, 1])
    sheet.add_row([2, 2, 2])
    sheet.add_row([3, 3, 0])    # we will be updating the last cell in this row (C4)
    sheet.add_row([4, 4, 4])
    
    cell = sheet['C4']
    cell.type = :string         # it is important to ensure the type of the cell is set before adding the formula
    cell.value = '=A3+A4'
    
    pk.serialize("example.xlsx")
    

    下面是一个动态更新单元格公式的例子:

    pk = Axlsx::Package.new
    wb = pk.workbook
    sheet = wb.add_worksheet(name: 'Test')
    sheet.add_row(['First', 'Second', 'Third'])
    sheet.add_row([1, 1, 1])
    sheet.add_row([2, 2, 2])
    sheet.add_row([3, 3, 3])
    sheet.add_row([4, 4, 4])
    
    cells = sheet["C2:C5"]  # select an array of cells
    
    cells.each do |cell|
      row_index = cell.row.index + 1
      cell.type = :string
      cell.value = "=SUM(A#{row_index}:B#{row_index})"
    end
    
    pk.serialize("example2.xlsx")
    

    【讨论】:

    • 谢谢。您知道是否可以将公式分配给整列。因此,在您的情况下,所有 C 列都将添加相应的 A 和 B 列
    猜你喜欢
    • 2014-06-21
    • 1970-01-01
    • 1970-01-01
    • 2016-09-30
    • 1970-01-01
    • 2020-04-10
    • 2016-09-30
    • 2016-10-13
    • 1970-01-01
    相关资源
    最近更新 更多