Ruby win32ole gem 没有安装 ms-office
Ruby win32ole gem without ms-office installed
我们的系统配置
OS : Windows 2012 server
Ms-office installed : NO
language : Ruby
gem used : win32ole-pp
我们正在使用 "gem install win32ole-pp" 的 win32ole,下面是读取 excel 文件的代码
require 'win32ole'
begin
xl = WIN32OLE.new('Excel.Application')
file = $testdatasheet
file = Dir::pwd + "/#{file}"
wb = xl.workbooks.Open(file)
我们收到以下错误消息
unknown OLE server: `Excel.Application'
HRESULT error code:0x800401f3
Invalid class string (WIN32OLERuntimeError)
./features/step_definitions/read_excel_steps.rb:107:in `initialize'
./features/step_definitions/read_excel_steps.rb:107:in `new'
./features/step_definitions/read_excel_steps.rb:107:in `get_recordcount'
./features/support/env.rb:95:in `Around'
我的问题
我们需要先安装 Ms-office 吗
除了安装Ms-office还有其他解决方案吗
win32ole gem 基本上是使用 Windows' OLE 机制安装在系统上的外部库的接口。除了它提供的可访问性之外,它本身并没有带来任何实际功能。
现在,在您的代码中,您正在使用 Excel.Application
库访问 Excel 提供的功能。除非您安装了 Excel,否则您无法使用此功能,因为它不存在。
因此,唯一的解决办法确实是在运行您的 Ruby 代码的计算机上安装 Excel。如果这不是您所希望的,您可以更新您的代码以使用 LibreOffice(或其衍生产品之一),并使用其功能来操作 Excel 个文件。
我们的系统配置
OS : Windows 2012 server
Ms-office installed : NO
language : Ruby
gem used : win32ole-pp
我们正在使用 "gem install win32ole-pp" 的 win32ole,下面是读取 excel 文件的代码
require 'win32ole'
begin
xl = WIN32OLE.new('Excel.Application')
file = $testdatasheet
file = Dir::pwd + "/#{file}"
wb = xl.workbooks.Open(file)
我们收到以下错误消息
unknown OLE server: `Excel.Application'
HRESULT error code:0x800401f3
Invalid class string (WIN32OLERuntimeError)
./features/step_definitions/read_excel_steps.rb:107:in `initialize'
./features/step_definitions/read_excel_steps.rb:107:in `new'
./features/step_definitions/read_excel_steps.rb:107:in `get_recordcount'
./features/support/env.rb:95:in `Around'
我的问题
我们需要先安装 Ms-office 吗
除了安装Ms-office还有其他解决方案吗
win32ole gem 基本上是使用 Windows' OLE 机制安装在系统上的外部库的接口。除了它提供的可访问性之外,它本身并没有带来任何实际功能。
现在,在您的代码中,您正在使用 Excel.Application
库访问 Excel 提供的功能。除非您安装了 Excel,否则您无法使用此功能,因为它不存在。
因此,唯一的解决办法确实是在运行您的 Ruby 代码的计算机上安装 Excel。如果这不是您所希望的,您可以更新您的代码以使用 LibreOffice(或其衍生产品之一),并使用其功能来操作 Excel 个文件。