2013-09-27 24 views

回答

4

你想要做什么是指定一个解锁样式,并将其应用于不应该保护所有行。 我知道这有点复杂,但规范也是如此!

p = Axlsx::Package.new 
wb = p.workbook 

unlocked = wb.styles.add_style { locked: false } 

wb.add_worksheet(name: 'Sheet Protection') do |sheet| 
    sheet.sheet_protection.password = 'fish' 
    sheet.add_row [1, 2 ,3] # These cells will be locked 
    sheet.add_row [4, 5, 6], style: unlocked # these cells will not! 
end 

p.serialize 'dont_touch_my_headers.xlsx' 

要记住的重要事情是,你需要指定一个样式,包括

locked: false 
0

您可以指定锁定在一种风格,那么样式应用到列在最后:

locked = wb.styles.add_style :locked => true 
sheet.col_style 2, locked 

我没有测试过。它结合了几个例子。这里是锁定单排的一个例子:

https://github.com/randym/axlsx/blob/master/examples/example.rb#L571

+0

非常感谢诺埃尔先生所有非标题行。 但是,每当我添加sheet.sheet_protection.password ='XYZ'。保护锁定,解锁 它保护了我的整个axlsx。但我想只保护我的标题行不是全部。 –

相关问题