新手问题 Ruby 使用 win32ole 操作 Excel 问题

kgra · 2014年03月31日 · 最后由 kgra 回复于 2014年06月05日 · 5115 次阅读

Ruby 版本:1.9.3 Miscrosoft office 2007 执行下面代码时报错,如下:

excel = WIN32OLE::new('Excel.Application')

错误结果如下图:

麻烦高手解答下该怎么办? 自己查了下,貌似要重装 office,还有别的办法没?

用 Linux 或 Mac, 不知道这算不算别的方法

用 java 的 poi 这个 jar 包然后写 jruby 代码

何苦在 Windows 下面搞 Ruby,后面还有无数的坑。Vagrant 搞起吧

重装 office 吧 windows 下面没有其他办法,换个 2010 可以用的

#3 楼 @kevinzhow 楼主用 win32ole 的这种做法只能用在 win 的环境里面,推荐用 vagrant 的话难道用它装个 win xp 然后再里面装个 offer 来操作 excel 么

#5 楼 @ywjno Sorry 我条件反射了

推荐 parseexcel ,没在 windows 下用过

#7 楼 @dddd1919 貌似 parseexcel 只支持 ruby1.8,多年没更新了。如果 excel 格式比较复杂,或数据量比较大,推荐 2 楼提到的 POI,不用 Juby 可以用 rjb

#8 楼 @bryan 不会吧,我在 2.0 上用的没问题

ruby 2.0.0p353 (2013-11-22) [x64-mingw32] 执行无问题。 给楼主参考。

#9 楼 @dddd1919 抱歉没有实际用过,是看到 Github 的描述。可能因为没有 migration 的问题,所以 2.0 也能跑。这种年久失修的 Gem,一直在用,没问题也就算了。不过从来没接触过的,建议最好还是别去碰,学习的时间成本很可能就打水漂了~

spreadsheet 能读能写 只支持 xls 格式

roo 支持很多格式 但只能读

axlsx 功能很多

所以我推荐用 POI

@kgra 我在 linux 下面 require 'win32ole' 直接就报 LoadError: cannot load such file -- win32ole,是不是这个标准库 (win32ole),不能在 linux 下面使用啊

#15 楼 @josh_sulin “win32ole”,里面有 win,应该是不能在 linux 里

需要 登录 后方可回复, 如果你还没有账号请 注册新账号