Как перестроить лист Excel с RubyGem?

Я использую Axlsx для создания листов Excel.

Положение имени листа становится неправильным после применения Ruby Thread.

например:

я хочу порядок листов таким образом

sheet 1
sheet 2
sheet 3

но после применения рубиновой нити ее поступает

sheet 2
sheet 1
sheet 3

как сохранить лист в порядке?

1 ответ

Это будет работать на основе вашего примера RubyFiddle

arr = (1..10).map do |i|
  Thread.new{
     sleep(rand(0)/10.0)
     Thread.current["mycount"] = count
     count += 1
  }
end
arr.each do |t| 
  t.join
  puts "#{t['mycount']}"
end
    #24
    #28
    #29
    #26
    #23
    #22
    #25
    #21
    #27
    #20

arr.sort_by{|t| t["mycount"]}.each do |t| 
  t.join
  puts "#{t['mycount']}"
end
   #20
   #21
   #22
   #23
   #24
   #25
   #26
   #27
   #28
   #29

Или еще лучше, хотя, вероятно, не работает для вашего полного решения экспорта электронных таблиц

arr.sort_by(&:value).each(&:join)
Другие вопросы по тегам