1 beğenilme 0 beğenilmeme
9 kez görüntülendi
Ruby kategorisinde tarafından soruldu
Ruby ile excel dosyasından veri okuma.

How to read cell from excel file with ruby?
    

1 cevap

0 beğenilme 0 beğenilmeme
Bilge (116k puan) tarafından cevaplandı
tarafından düzenlendi

Aşağıdaki örneği kullanabilirsiniz. (İlgili gem projesi  şuradadır)

require 'rubyXL'

workbook = RubyXL::Parser.parse("e.xlsx")
worksheet = workbook[0]
worksheet.each { |row|
  puts "Satır işlenmeye başladı!"
  row.cells.each { |cell|
    val = cell && cell.value
    puts "Okunan hücre  : #{val}"
  }
}
Not: gem kurulu değilse, "gem install rubyXL" komutu ile kurunuz.

for i in 1..1  # excelin 1.satırı 1..150(150.satırı)
  # puts "#{i} Satır"

  # SQL sorgumuzu hazırlıyoruz, values(#{i}, id alanına döngüdeki i yi koyuyoruz.
  s= "INSERT INTO inventories (id, user_name, department, computer_name, lan_ip, lan_mac, wifi_ip, wifi_mac, operating_system, computer_type, computer_modal, cpu,
                               ram, hdd, one_monitor, two_monitor, created_at, updated_at) VALUES(#{i}, "

  # exceldeki 1. satırın, dönmesini istediğimiz kolonları belirtiyoruz.
  # 1. satırın, 0 dan başlayan 14. kolununa kadar dönüyor. 0..14(A,B,C ... H,I)
  for j in 0..14
    #puts "#{j}Sutun"
    val = worksheet.sheet_data[i][j].value # excelin çalışma sayfalarından 1.calısma sayfası
    if !val.nil?      # val nil değilse,
      s=+s+"'#{val.to_s}'"+","     # s sorgusuna, s + val'ın değeri + değerler arası virgül(,) koyuyoruz.
    else
      s=s+"'#{" "}'"+","     # excelde boş alan var " "(boşluk) koyuyoruz.
      #puts "nil ya da boşluk" 
    end
  end
  s=s[0..s.length-2]
  puts s+","+"'#{time}'"+","+"'#{time}'"+")"+";"  # sorguyu ekrana yazdırıyoruz, time alanları, created_at ve updated_at alanlarıdır.
  #puts "#{i} Satır  islemleri bitti"
end
En güncel teknolojiler hakkında yeni şeyler öğren, bilmediklerini sor, bildiklerini paylaş...

Kategoriler

...