Tag: win32ole

如何将Excel文件保存在Win32 :: OLE的工作目录中

我正试图parsing一个Excel文件在Perl中。 在我从中提取所需信息后,closuresExcel文件。 最后,我试图用不同的名字保存一个新的Excel文件在同一个目录下。 但是这个Excel存储在“我的文档”文件夹中。 use Storable ; use Cwd; use Win32::OLE ; use Win32::OLE qw(in with) ; use Win32::OLE in ; use Win32::OLE::Const 'Microsoft Excel'; use Excel::Writer::XLSX; my $Excel = Win32::OLE->new("Excel.Application"); my $excel = $Excel->Workbooks->Add(); my $sheet = $excel->Worksheets(1); $sheet->Activate(); my $new_file = "Temp_file.xlsm"; my $new_excel = cwd.'\\'.$new_file; $new_excel =~ s/\//\\/g; $excel->SaveAs($new_excel); $Excel->{DisplayAlerts} = 0; […]

保存没有密码的Excel电子表格文件

我试图打开密码保护的Excel,并保存它没有密码。 我知道密码。 当我试图运行下面的代码时,该文件正在使用密码保存。 #!/usr/bin/perl use strict; use warnings, use Win32::OLE qw(in with); use Win32::OLE::Const 'Microsoft Excel *'; my $file = "in.xls"; my $outFile = "out.xls"; my $Excel = Win32::OLE->new ('Excel.Application', 'Quit'); $Excel->{'Visible'} = 0; #0 is hidden, 1 is visible $Excel->{'DisplayAlerts'} = 0; #0 is hide alerts my $Book = $Excel->Workbooks->Open({FileName => "$file", Password => […]

为什么当我尝试使用Perl的Win32 :: OLE在Excel中设置单元格的值时出现exception?

我得到错误Win32::OLE<0.1709> error 0x80020009: "Exception occurred" in PROPERTYPUT "Value"在109行中Win32::OLE<0.1709> error 0x80020009: "Exception occurred" in PROPERTYPUT "Value" 。 代码是Perl。 foreach my $ref_array1 (@$array1) { # loop through the array foreach my $col1 (@$ref_array1) { foreach my $ref_array2 (@$array2) { # loop through the array foreach my $col2 (@$ref_array2) { if ($col1 eq $col2) { this is line […]

Excel 2007中的数据透视图的自动化

你能帮我一下,以便自动化一个数据透视表,下面是我写的代码。 我目前正在创build一个图表 require "rubygems" # require "watir" # Commented out by editor to the question, not by the OP require 'win32ole' excel=WIN32OLE.new("Excel.Application") excel.visible=true work_book=excel.Workbooks.Open("C:\\VAMSI\\PIVOTAL_CHART_CODE\\pivotal.xlsx") worksheet = work_book.worksheets(1) worksheet.range("a1").select autoit= WIN32OLE.new("AutoItX3.Control") autoit.Send("!n") autoit.Send("!v") autoit.Send("!t") autoit.Send("{ENTER}")

如何通过Win32 :: OLE使用Excel联合function?

我正在使用Win32 :: OLE从MSExcel 2010中的Excel数据表创build图表。数据不在连续的列中,而且我有一个具有每个数据范围的ds。 我试图将所有这些数据范围联合到一个单一的范围对象,如: my $range = $self->{'workbook'}->Application->Union( $range, $r ); 它工作正常,直到“$ BS $ 1:$ BS $ 168”。 下一个数据在“$ BW $ 1:$ BW $ 168”范围内。 这个范围没有和前一个范围保持一致,只剩下18个而不是46个。 可能是什么原因和解决方法? 是否有任何限制,你可以收集的系列数量?

在perl中使用win32 :: OLE捕获Excel单元格/列和Excel表单页眉和页脚的filter

如何使用Win32 :: OLE捕获在Microsoft Excel工作表中为列的特定单元格定义的筛选器。 是否有任何内置函数来检查是否为该单元格定义了filter,然后进行捕获? 如何使用Win32:OLE捕获Excel工作表的页眉和页脚? 一直在寻找很多,但找不到任何东西。

将一个OLE对象添加到属性失败,并显示“Win32 :: OLE(0.1709)错误0x80020003:PROPERTYPUTREF”

以下脚本按预期工作。 use warnings; use strict; use Win32::Ole; use Win32::OLE::Const 'Microsoft.Excel'; $Win32::OLE::Warn = 3; my $excel = CreateObject Win32::OLE 'Excel.Application' or die; $excel->{'Visible'} = 1; my $workbook = $excel -> workbooks -> add(1); my $sheet = $workbook -> sheets(1); my $shape = $sheet -> shapes -> addChart; my $chart = $shape -> chart; $chart -> {chartType} […]

在Windows上通过ruby处理2个或更多的Windows程序实例

好的,那么。 谢谢您阅读此篇。 我很容易处理例如Excel中的多个实例,只需定义两个variables: require 'win32ole' excel1 = WIN32OLE.new('Excel.Application') excel2 = WIN32OLE.new('Excel.Application') …魔术发生aaaaand它工作得很好。 (Excel可能默认支持多个实例) 让我们移动其他的例子。 (几个小时的谷歌search后)我find了一种方式如何运行两个不支持它的程序单独的实例(至lessruby不工作,因为它是与Excel的工作)通过创build* .bat文件(或键入它在cmdline中): start "BrioQry" "C:\Program Files (x86)\Brio\Brio8\Client\Program\brioqry.exe" "C:\samefiletoload.bqy" /e %1 start "BrioQry" "C:\Program Files (x86)\Brio\Brio8\Client\Program\brioqry.exe" "C:\samefiletoload.bqy" /e %2 我不知道/ e和%1和%2在做什么(%可能是参数),但它工作得很好。 是的,这些文件是相同的。 我可以通过winmgmts获得关于这个进程的一些信息 require 'win32ole' mywmi = WIN32OLE.connect("winmgmts:\\\\.") 所以,我的问题是: 1)如果可以通过向WIN32OLE.run()添加某种参数来运行单独的实例(不支持它的程序) 2)如果可以通过WIN32OLE.connect方法连接到已经运行的进程(通过cmdline启动) 3)如果我不想通过尝试来实现这一点, 4)如果有其他的方式来做这个ruby或python (是的,我想然后使用该应用程序) 谢谢!!!

如何计算行数,并使用win32ole gem读取ruby中的Excel工作表(.xlsx)中的数据

我有一个只有文本数据的excel工作表(.xlsx)格式,我想要统计no的行数,以及使用win32ole gem从ruby excel表格中读取文本数据。我已经经历了许多代表这些types的问题,但与最新的gem(电子表格,roo等)stackoverflow。因为我使用1.8.7版本的ruby,我想用win32ole gem读取数据。 Ruby Version 1.8.7 windows 7

Perl Excel OLE-> GetActiveObject get的随机永久卡住

我正在使用perl来处理batch file中的excel文件,该文件使用这种代码来为每个文件运行macros: print strftime("[%H:%M] ", localtime(time)), "Handling file $path\n"; my $Excel = Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new('Excel.Application', 'Quit'); print strftime("[%H:%M] ", localtime(time)), "OLE Created\n"; 有时在数千次成功运行之后,这个过程就会在两个打印语句之间卡住,甚至几个小时后也不会发生。 在查看任务pipe理器时,Excel进程正在运行,如果我杀了它,那么进程将继续。 macros以Excel的方式结束到Application.Quit 。 有什么办法来设置这种甚至更好的某种超时,以解决这个问题? 我可以通过启动一个最终会杀死excel进程的线程来修复这个问题,在正常情况下在杀死之前停止线程,但是我希望得到一个更优雅的解决scheme。