从excel文件中读取特定列并写入另一个excel文件

时间:2018-09-26 09:56:34

标签: ruby spreadsheet

我的目标是读取excel文件列并将其写入另一个新文件。 到现在为止,我已经能够创建具有指定列的新文件。我能够基于行和列索引读取Excel文件。但是我的目标是不同的。 我必须从excel文件中选择特定的列,然后将所有数据写入同一列下的另一个文件。 我该如何实现。

require 'spreadsheet'

    #Step 1 : create an excel sheet

    book = Spreadsheet::Workbook.new
    sheet = book.create_worksheet
    sheet.row(0).concat %w[id column_1 column_2 column_3]
    book.write 'Data/write_excel.xls'

    #step 2 : read the data excel file

    book1 = Spreadsheet.open('Data/read_excel.xls')
    sheet1 = book1.worksheet('')
    val = sheet1[0, 1]
    puts val

1 个答案:

答案 0 :(得分:0)

这是一个选项,在知道源列号和目标列号之前:

# Step 3 copy the columns

col_num = 3 #=> the destination column
row_num = 1 #=> to skip the headers and start from the second row
sheet1.each row_num do |row|
    sheet[row_num, col_num] = row[0] # row[1] the number represents the column to copy from the source file
    row_num += 1
end

然后保存文件:book.write 'filename'