到XLSX是否有任何寶石/插件/代碼片段將從Excel的XLS轉換使用Ruby從Excel XLS轉換的紅寶石
2
A
回答
0
1
假設您有Excel安裝,你應該能夠使用WIN32OLE(http://ruby-doc.org/stdlib/libdoc/wi n32ole/rdoc/index.html)腳本Excel。最簡單的技術可能是將文件重命名爲.xlsx文件,然後讓Excel打開並保存它。這可能比試圖通過「另存爲」操作編寫腳本更容易。
這不是Ruby解決方案,但我也使用AutoIt腳本化Excel界面。
0
如果您有Excel安裝,您可以使用下面的方法將XLS文件轉換成XLSX文件:
require 'win32ole'
def xls2xlsx(path, target = nil)
raise ArgumentError unless path =~ /.xls\Z/
raise ArgumentError unless File.exist?(path)
target = path + 'x' unless target # Save the workbook./must be \
puts "convert %s to %s" % [path, target]
# Create an instance of the Excel application object
xl = WIN32OLE.new('Excel.Application')
# Make Excel visible 1=visible 0=not visible
xl.Visible = 1
#~ xl.Interactive = false #visible, but no input allowed
#~ xl.ScreenUpdating = false #make it faster
xl.DisplayAlerts = false #No alerts like "don't overwrite
# Add a new Workbook object
wb = xl.Workbooks.Open(File.expand_path(path))
wb.SaveAs(File.expand_path(target).gsub!(/\//, '\\'), 51) #excel 2007
# Close the workbook
wb.Close
# Quit Excel
xl.Quit
end
如果您需要TH其他方式(XLSX到XLS),您可以使用:
def xlsx2xls(path, target = nil)
raise ArgumentError unless path =~ /.xlsx\Z/
raise ArgumentError unless File.exist?(path)
target = path.chop unless target # Save the workbook./must be \
puts "convert %s to %s" % [path, target]
# Create an instance of the Excel application object
xl = WIN32OLE.new('Excel.Application')
# Make Excel visible 1=visible 0=not visible
xl.Visible = 1
#~ xl.Interactive = false #visible, but no input allowed
#~ xl.ScreenUpdating = false #make it faster
xl.DisplayAlerts = false #No alerts like "don't overwrite
# Add a new Workbook object
wb = xl.Workbooks.Open(File.expand_path(path))
wb.SaveAs(File.expand_path(target).gsub!(/\//, '\\'), -4143) #excel97_2003_format
# Close the workbook
wb.Close
# Quit Excel
xl.Quit
end
我用第2種方法結合axlsx得到XLS文件。首先我用axslx創建一個xlsx,然後通過winole將它轉換爲xls。
相關問題
- 1. 轉換紅寶石
- 2. 紅寶石日期轉換
- 3. 轉換陣列,紅寶石
- 4. Python到紅寶石轉換
- 5. 轉換紅寶石+ JavaScript代碼的CoffeeScript
- 6. 從紅寶石
- 7. 從紅寶石
- 8. 從紅寶石
- 9. 從紅寶石轉換爲紅色的哈希
- 10. 轉換紅寶石時間的Objective-C
- 11. 替換紅寶石
- 12. 轉換UTF-8 CP1252紅寶石2.2
- 13. 轉換紅寶石字符串BIGNUM
- 14. 轉換成陣列紅寶石
- 15. 轉換JavaScript變數紅寶石變量
- 16. 將unicode轉換爲紅寶石字符
- 17. 日期格式轉換紅寶石
- 18. 紅寶石 - (?)轉換.RB以.EXE
- 19. 紅寶石CSV.readline轉換成散列
- 20. 如何轉換紅寶石UTF串
- 21. 轉換JSON紅寶石哈希
- 22. 紅寶石:從YAML
- 23. 在紅寶石
- 24. Twitter的紅寶石寶石
- 25. 寶石cmd從紅寶石腳本
- 26. 紅寶石哈希轉
- 27. 紅寶石轉化哈希
- 28. 錯誤紅寶石寶石
- 29. 紅寶石#{}將換行符
- 30. 紅寶石XML更換
我不知道roo會在這裏有多大用處。他們的網站表示,它目前僅限於Excel電子表格的只讀訪問。 – bta 2011-01-11 13:39:11