2011-02-07 10 views
6

मुझे लिनक्स सर्वर पर Excel फ़ाइलों को पढ़ने और लिखने (-> रूपांतरित) की आवश्यकता है, जिसमें निश्चित रूप से एक्सेल स्थापित नहीं है। पायथन के लिए http://www.python-excel.org/ मौजूद है। क्या रूबी के लिए कुछ समान है? नवीनतम कार्यालय प्रारूप की प्रसंस्करण शायद आवश्यक नहीं है। बस पुरानी एक्सएलएस फाइलें पर्याप्त होनी चाहिए।Excel के बिना किसी सर्वर पर रूबी का उपयोग करके एक्सेल फ़ाइलों को पढ़ना और लिखना

+0

के संभावित डुप्लिकेट था [रूबी: पार्स एक्सेल 95-2003 फ़ाइलें] (http: // stackoverflow। कॉम/प्रश्न/1579635/रूबी-पार्स-एक्सेल -95-2003-फाइलें) – mikej

उत्तर

11

मैं गोंज़िह से सहमत हूं, और मैं नियमित रूप से रू का उपयोग करता हूं। यह मुझे एक टेम्पलेट फ़ाइल का उपयोग करके पढ़ने, लिखने और लिखने की अनुमति देता है। परियोजना site पर काफी अच्छी तरह से प्रलेखित है। एक स्प्रेडशीट को पढ़ने के लिए

input = Excel.new(path) 
output = Array.new 
input.default_sheet = input.sheets[sheet] 
start.upto(input.last_row) do |row| 
    output << input.row(row) 
end 

p output 
=> a nested array representing the spreadsheat. 

p output[0] 
=> [row1_column_a, row1_column_b...] 

:

मैं हमेशा की तरह कुछ का उपयोग करें। ध्यान दें कि यदि आपकी फ़ाइल एक .xlsx है तो roo मणि के लिए आपको Excelx.new का उपयोग Excel.new के बजाय करने की आवश्यकता है।

लिखने के लिए आप कर सकते हैं:

book = Spreadsheet::Workbook.new 
write_sheet = book.create_worksheet 
row_num = 0 
input.each do |row| 
    write_sheet.row(row_num).replace row 
    row_num +=1 
end 
book.write "/path/to/save/to.xls" 

जहां इनपुट एक सरणी सिर्फ उत्पादन की तरह संरचित है

+0

गोंज़िह? उसने क्या कहा??? –

+0

@ Som_other_guy उन्होंने कहा, "roo मणि का उपयोग करें" –

+0

-rf: लेकिन लेकिन ... मैंने सोचा कि यह एक्सेल को नहीं लिख सकता! –

संबंधित मुद्दे