执行VBA程序的ruby程序

时间:2013-07-04 20:17:43

标签: ruby vba

我有一个ruby程序,可以从网站上下载一组Microsoft excel cvs文件。然后我想告诉ruby运行VBA脚本或程序,我不确定正确的术语是什么,它将把所有cvs文件组合并操作到一个excel工作簿中。

我查看了ruby API,但我不知道应该寻找什么。

谢谢,

1 个答案:

答案 0 :(得分:1)

不要使用vba。您可以在Ruby中使用vba,如下面的示例所示,但是有一些Ruby gems可以更轻松,更好地完成所有操作,例如,查看Roo gem。 因为它是csv你可以加入文件并保存一个大的csv文件。 Excel将打开加入的csv没有问题。 除非您需要管理数据,否则您甚至不需要csv gem(包含在核心库中)。

require 'win32ole'

excel = WIN32OLE.new('Excel.Application')
excel.visible = true
workbook = excel.Workbooks.Add();
worksheet = workbook.Worksheets(1);
worksheet.Range("A1:D1").value = ["North","South","East","West"];
worksheet.Range("A2:B2").value = [5.2, 10];
worksheet.Range("C2").value = 8;
worksheet.Range("D2").value = 20;

range = worksheet.Range("A1:D2");
range.select
chart = workbook.Charts.Add;

workbook.saved = true;

这里有一个使用Roo的例子

require 'roo'

w1 = Roo::Spreadsheet.open( "C:/Ruby193/test/roo/2.csv" )
w1.each_with_pagename do |name,sheet|
  puts name, sheet.row(1)
end