นำเข้า Excel ลงในแอป Rails

ฉันกำลังสร้างแอป Rails ขนาดเล็กสำหรับการใช้งานส่วนตัว และต้องการอัปโหลดไฟล์ Excel เพื่อตรวจสอบความถูกต้องและเพิ่มลงในฐานข้อมูลในภายหลัง ก่อนหน้านี้ฉันเคยใช้งานสิ่งนี้กับไฟล์ csv แต่หลังจากนั้นก็ทำไม่ได้ในทางปฏิบัติ

มีใครรู้บทช่วยสอนในการใช้ roo หรือ Spreadsheet Gem เพื่ออัปโหลดไฟล์ แสดงเนื้อหาให้ผู้ใช้แล้วเพิ่มลงในฐานข้อมูล (หลังจากตรวจสอบความถูกต้อง) แล้ว ฉันรู้ว่านี่ค่อนข้างเฉพาะเจาะจง แต่ฉันต้องการดำเนินการทีละขั้นตอน

ทั้งหมดที่ฉันมีคือมุมมอง 'นำเข้า':

<% form_for :dump, :url=>{:controller=>"students", :action=>"student_import"}, :html => { :multipart => true } do |f| -%>
    Select an Excel File :
    <%= f.file_field :excel_file -%>
    <%= submit_tag 'Submit' -%>
<% end -%>

แต่ไม่รู้ว่าจะเข้าถึงไฟล์ที่อัพโหลดนี้ในคอนโทรลเลอร์ได้อย่างไร

ข้อเสนอแนะ / ความช่วยเหลือใด ๆ จะได้รับการต้อนรับ ขอบคุณ


person Jack    schedule 12.05.2010    source แหล่งที่มา
comment
ด้วยความอยากรู้อยากเห็น เหตุใดเวอร์ชันไฟล์ csv จึงใช้งานไม่ได้ ผู้ใช้จำเป็นต้องทำอะไรมากมายเพื่อที่จะอัพโหลดนักเรียนหรือไม่? ฉันกลัวว่าผู้ใช้ของฉันอาจถูกข่มขู่โดยต้องแอบแฝงเป็น CSV   -  person E.E.33    schedule 18.10.2012


คำตอบ (4)


"ไลบรารีสเปรดชีตได้รับการออกแบบมาเพื่ออ่านและเขียนเอกสารสเปรดชีต ในเวอร์ชัน 0.6.0 รองรับเฉพาะสเปรดชีตที่เข้ากันได้กับ Microsoft Excel สเปรดชีตเป็นการผสมผสาน/การเขียนใหม่ของ Spreadsheet::Excel Library โดย Daniel J. Berger และ ParseExcel ห้องสมุดโดย Hannes Wyss สเปรดชีตสามารถอ่าน เขียน และแก้ไขเอกสารสเปรดชีตได้"

แก้ไข
หากต้องการรับไฟล์ที่อัปโหลด คุณมีสองตัวเลือก:
1. (แนะนำ) ใช้ปลั๊กอินอัปโหลดไฟล์เช่น คลิปหนีบกระดาษ และมันจะจัดการบิตและสลักเกลียว
2. ใช้วัตถุ IO params[:dump][:excel_file] ตาม: http://guides.rails.info/form_helpers.html#what-gets-uploaded

person clyfe    schedule 12.05.2010

เราใช้ roo ซึ่งรองรับ Open Office, Excel, Google, Excel.xlsx

person allenwei    schedule 02.06.2010
comment
แต่ roo ไม่มีฟังก์ชันในการบันทึกไฟล์ .xlsx มีเพียงการอ่านและการแยกวิเคราะห์เท่านั้น หรือฉันไม่ถูกต้อง? - person bmalets; 19.03.2018

มี RailsCast ที่ยอดเยี่ยมเกี่ยวกับวิธีการทำเช่นนี้ด้วย roo gem: http://railscasts.com/episodes/396-importing-csv-and-excel

person cgenco    schedule 25.02.2013

สวัสดี ฉันใช้สเปรดชีตเจมและเขียนแอปง่ายๆ เพื่อทำความเข้าใจว่ามันเข้ากันได้อย่างไร ปัจจุบันทำงานบน Rails 3.1 และ Carrierwave หวังว่านี่จะช่วยได้:

https://github.com/jalagrange/excel_test_app

person jalagrange    schedule 03.11.2011
comment
แอปไม่ได้ทำงานอยู่ในเครื่อง คุณจะรู้ว่าทำไม? - person CodeBiker; 02.07.2013