def format_row(row, height=nil, format=nil, hidden=false, level=0)
unless row.kind_of?(Range) || row.kind_of?(Integer)
raise TypeError, 'row must be an Integer or Range'
end
if hidden.nil? || hidden == false
hidden = 0
end
record = 0x0208
length = 0x0010
col_first = 0x0000
col_last = 0x0000
irwmac = 0x0000
reserved = 0x0000
grbit = 0x0000
xf_index = nil
grbit |= level
if hidden > 0
grbit |= 0x0020
end
grbit |= 0x0040
grbit |= 0x0100
@outline_row_level = level if level > @outline_row_level
if format.nil?
xf_index = 0x0F
else
xf_index = format.xf_index
grbit |= 0x80
end
if height.nil?
height = 0xff
else
height = height * 20
end
row = row..row if row.kind_of?(Fixnum)
row.each{ |r|
header = [record, length].pack("vv")
fields = [r,col_first,col_last,height,irwmac,reserved,grbit,xf_index]
data = fields.pack("vvvvvvvv")
@row_formats[r] = format if format
append(header + data)
}
end