def build_column(start_column = nil)
      if block_given?
        raise StandardError.new('build_column block called within row block') if @in_row
        raise StandardError.new('build_column called without valid argument') unless start_column.is_a?(Numeric)

        backup_col_start = @col_start
        backup_col_offset = @col_offset
        backup_row_offset = @row_offset
        @col_start = start_column.to_i
        @col_offset = @col_start
        @row_offset = 0

        yield

        @col_start = backup_col_start
        @col_offset = backup_col_offset
        @row_offset = backup_row_offset
      end
      @col_start
    end
def build_column(start_column = nil)
      if block_given?
        raise StandardError.new('build_column block called within row block') if @in_row
        raise StandardError.new('build_column called without valid argument') unless start_column.is_a?(Numeric)

        backup_col_start = @col_start
        backup_col_offset = @col_offset
        backup_row_offset = @row_offset
        @col_start = start_column.to_i
        @col_offset = @col_start
        @row_offset = 0

        yield

        @col_start = backup_col_start
        @col_offset = backup_col_offset
        @row_offset = backup_row_offset
      end
      @col_start
    end
Builds data starting at the specified column.

 The +start_column+ is the first column you want to be building.
 When you start a new row inside of a build_column block, the new row
 starts at this same column.