Tag: win32ole

Ruby脚本读取列中最后一个填充的单元格

我需要一个ruby代码来读取列a,并find列最后填充的单元格在哪里结束。在上传的图像中,最后填充的数据是我在单元格“A21”。 我需要通过ruby代码来知道这个单元格地址。

使用win32ole的Ruby程序在Windows7 64位下不能工作

我有一个古老的ruby程序,从Excel文件中提取值并将汇总存储在另一个Excel文件中。 为此,程序使用Ruby的库win32ole。 切换到Windows 7 64位(而不是Windows XP 32位),Office 2007而不是Office 2003的新计算机后,程序现在在存储生成的Excel文件时引发错误: ana.rb:120:in `method_missing': SaveAs (WIN32OLERuntimeError) OLE error code:800A03EC in Microsoft Office Excel 'c:/my/dir' could not be accessed. The file could be corrupt, is on a server that does not react, or the file is write protected. (German: Auf 'c:/my/dir' konnte nicht zugegriffen werden. Unter Umstaenden ist die […]

使用Win32 :: OLE模块操作Windows Excel的Perl命令列表

有没有人的Perl命令的列表来操纵基本的Win32 :: OLE模块在Windows上的Excel? 特别是,我正在考虑以下的操作: 打开并保存Excel文件 读取/更新值 阅读/更新公式 改变格式,边界 添加/编辑超链接 列出工作表 等等…

ruby(鞋)列表框崩溃时,从Excel中填充

使用鞋子时有问题。 我基本上试图打开一个Excel文档,并将工作表的名称传递给list_box。 select文件后按下button,将调用以下方法。 (这一切工作和文件打开) exc = WIN32OLE::new('excel.Application') excWB = exc.Workbooks.Open(xlsFile) @excWS = Array::new exc.visible = true excWB.Worksheets.each { |ws| @excWS.push(ws.name) } para @excWS list_box :items=> @excWS 不仅名称不在list_box中显示,应用程序在加载后没有错误不久就崩溃了。 para @excWS显示没有问题的工作表名称。 我究竟做错了什么?

win32ole进程仍在ruby中运行

我知道这个问题已经被直接使用VB时被问到,但是我在终止一个进程时遇到了麻烦。 我使用的是win32ole和ruby 1.9的jruby版本。 我目前的代码是这样的: begin excel = WIN32OLE::connect('excel.Application') rescue excel = WIN32OLE::new('excel.Application') end excel.Visible = 1 workbook = excel.Workbooks.Open("path to some doc") ws = workbook.Worksheets(1) ws.Select cell_content = ws.Cells(4,4).Value puts("#{cell_content}") workbook.Close cell_content = nil ws = nil workbook = nil excel.ole_free excel = nil GC.start 我试图简单地打开excel,得到一个值并终止。 但是当我查看任务pipe理器时,我仍然看到EXCEL.exe正在运行。 由于开始救援,它也应该打开一个现有的EXE,但每次运行它,它启动一个新的过程。 一旦脚本停止手动closuresExcel,但我也尝试使用excel.Close。 我是否需要调用Marshal.releaseComObject的ruby等价物? 我没有很多VB的经验,我对Ruby比较新,所以如果这是一个愚蠢的问题,我很抱歉,但是要提前感谢! 编辑:我也尝试使用excel.quit和excel.Quit,对不起,我忘了提及。 似乎都没有工作。 编辑2:我在运行rubymine和使用Windows XP,使用gem:jruby-win32ole […]

在Cygwin下使用Perl Win32 :: OLE读取.xls文件的问题

我一直在和这个打架了两天,找不到解决办法,我感到沮丧。 在Cygwin下使用下面的代码时,我得到这个错误 “Microsoft Office Excel”中的OLEexception:Excel无法访问“Empty.xls”。 该文件可能是只读的或encryption的。 Win32 :: OLE(0.1703)错误0x800a03ec在方法/ PROPERTYGET“打开”在m:/In/make_excel.pl行24 事情是在DOS提示符下工作完美。 该文件当然不是只读的。 我猜测文件格式解释有一些问题。 任何提示? 这将不胜感激。 #!/usr/bin/perl use Win32::OLE; use Win32::OLE::Variant; use Win32::OLE::Const 'Microsoft Excel'; $Excel = Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new('Excel.Application'); $Excel->{'Visible'} = 0; #0 is hidden, 1 is visible $Excel->{DisplayAlerts}=0; #0 is hide alerts # Open File and Worksheet my $Book = $Excel->Workbooks->Open('C:\Empty.xls'); …

无法使用Ruby&win32ole修改后保存Excel文件

使用http://ruby-doc.org/stdlib/libdoc/win32ole/rdoc/classes/WIN32OLE.html作为指南我写了以下内容: require 'win32ole' excel = WIN32OLE.new('Excel.Application') excel.visible = false #Setting this is 'true' doesn't reveal anything workbook = excel.workbooks.open('C:\myspreadsheet.xlsx') worksheet = workbook.worksheets('sheet1') worksheet.Activate data = worksheet.UsedRange.Value p data.size #This works! – My spreadsheet has 3987 rows. p data[3932] #This works, too! – I can "see" row 3932. worksheet.Rows(3932).Insert #Insert a row above row 3932 data […]

如何使Win32 :: OLE在64位MS OFFICE上安装

我有两台电脑,一台安装了MS Office 2013 32位,另一台安装了MS Office 64位。 我有Perl代码使用Win32::OLE Perl模块来操作XLS电子表格。 代码在32位个人电脑上工作得很好,但在64位上有问题。 在做了一些研究之后,我发现了。 问题是下面这行代码: use Win32::OLE::Const 'Microsoft Excel .* Object Library'; 我查看了Win32::OLE::Const模块,看起来模块正在registry中查找该库。 当我从32位和64位打印出registry中的所有条目时,我发现这个库在32位上可用,在64位上不可用。 有没有办法在64位上安装该库? 如果没有,是否有任何其他模块,将允许Excel的OLE自动化? 我所有的Perl脚本需要做的是打开XLS文件并将其保存为CSV。 我在所有其他脚本中使用Spreadsheet::ParseExcel和Spreadsheet::XLSX 。 这个特定的XLS文件的问题是,它是密码保护和使用非标准的密码encryption。 所以Spreadsheet::ParseExcel无法打开它。 Win32::OLE没有问题在32位打开文件。 代码可以提供,如果需要的话。 请指教。 谢谢,安德烈