有乙個小需求,需要乙個指令碼將excel檔案匯入資料庫對應字段。
正好可以練習一下task,不過首先先查查有沒有什麼好gem可以利用下(原諒我這麼懶)
找到乙個'roo' 回到gemfile中發現專案中已經包含了這個gem,恩看樣子大家都在用,檢視了一下用法還是很簡單,非常好用。
# excel
gem 'roo', '~> 2.3.2', require: false
在 gemfile中新增上這個gem
然後建立乙個新的rake任務,就可以開始我們的小任務了
namespace :v5_8_5 do
task a_change_offer_preferred: :environment do
require 'roo'
file = "#/tmp/preferred_offers.xlsx" # 將文字路徑賦給物件
if file.exists?(file)
# 開啟文字賦值給xlsx物件,將文字第一列賦值給物件sheet
xlsx = roo::spreadsheet.open(file, extension: :xlsx)
sheet = xlsx.sheet(0)
# 這裡將讀取出來的資料更新到資料表中
sheet.each do |row|
offer = offer.find_by(id: row[0])
offer.update_columns(description: row[2], position: row[3])
endend
endend
執行 rake v5_8_5:a_change_offer_preferred
就可以進行資料遷移了,當然實際中最好加上log,以及更新容錯,捕獲異常等級制才顯得更加完善。
怎麼樣 這個gem是不是很好用,官方文件上還有匯入csv 等等很多的方法
附上鏈結
如何將excel檔案匯入資料庫
如何將excel的檔案匯入到oracle資料庫中,我介紹兩種方法 一 你可以用select from 表名 for update 然後把鎖解開,直接的複製excel中的資料後貼上.複製的時候要注意下,前面要預留乙個空列,否則會串列。二 轉換為txt用sqlload進行入庫,方法 1 把excel另存...
如何將EXCEL內容匯入mysql
方法很多,不過建議你先看看mysql的開發文件,裡面寫的很詳細的,如果你懶得看,可以看下面的 1.有個軟體php excel parser pro v4.2可以 2.可將excel存成csv格式。然後通過phpmyadmin倒入mysql 3.先導入access中,再弄到mysql中,或者自己寫程式...
如何將EXCEL內容匯入mysql
2.可將excel存成csv格式。然後通過phpmyadmin倒入mysql 3.先導入access中,再弄到mysql中,或者自己寫程式讀出excel中資料然後存入mysql中 4.還有乙個比較笨的手工方法,就是先利用excel生成sql語句,然後再到mysql中執行,這種方法適用於excel 匯...