2015-08-21 99 views

回答

1

尝试axlsx例子页面在这里:

https://github.com/randym/axlsx/blob/master/examples/example.rb#L575-L581

# Repeat printing of header rows. 
#```ruby 
if examples.include? :repeated_header 
    wb.add_worksheet(:name => "repeated header") do |sheet| 
    sheet.add_row %w(These Column Header Will Render On Every Printed Sheet) 
    200.times { sheet.add_row %w(1 2 3 4 5 6 7 8) } 
    wb.add_defined_name("'repeated header'!$1:$1", :local_sheet_id => sheet.index, :name => '_xlnm.Print_Titles') 
    end 
end 
4

可以冻结窗格类似这样的例子:

require 'axlsx' 
    XLSX_temp = 'simple.xlsx' 

    Axlsx::Package.new do |p| 
     p.workbook.add_worksheet(:name => 'DATA') do |sheet| 
     sheet.add_row(%w{key col1 col2 col3 col4 col5}) 
     #Fix first line and column 
     sheet.sheet_view.pane do |pane| 
      pane.top_left_cell = "B2" 
      pane.state = :frozen_split 
      pane.y_split = 1 
      pane.x_split = 1 
      pane.active_pane = :bottom_right 
     end 

     10.times{ 
      sheet.add_row(%w{1 2 3 4 5 6}) 
     } 
     end  

     puts "Write %s" % XLSX_temp 
     p.serialize(XLSX_temp) 
    end 

结果有一个固定的第一列和行:

enter image description here

pane.x_split = 0只有第一行是固定的。

+0

我们可以冻结其起始行不是第一行的一些行吗? 你的代码会冻结第一行,但我想要的东西,冻结4行开始行3,即行3,4,5和6. –

+0

这是可能的Excel内?我无法亲自检查它,但我认为excel只允许从顶部修复行。 – knut

+0

是的,它允许在Excel中。谷歌电子表格有这个功能,我认为微软办公室也有这个功能。 –