rails 如何將excel檔案匯入資料庫

2021-09-02 16:19:29 字數 993 閱讀 4556

有乙個小需求,需要乙個指令碼將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 匯...