PERL操作程序六十(从WEB启动Excel的读写)
返回
Apache perl Win32::OLE Excelファイルを操作, XP=>Windows7/Windwos8変更時,エラーが発生!
*** OLE exception from "Microsoft Excel": ファイル
'D:\wwwexcel\samples\sample_ENQ.xls' にアクセスできません。次のいずれかの理由が考えられます。
• ファイル名またはパスが存在しません。
• ファイルが他のプログラムによって使用されています。
• 保存しようとしているブックと同じ名前のブックが現在開かれています。
Win32::OLE(0.1709) error 0x800a03ec in METHOD/PROPERTYGET "Open" at ./pro/mscwrite_excel.pl line 114.
114: $book = $t{ex}->Workbooks->Open("D:\\wwwexcel\\samples\\sample_ENQ.xls");
==>次のようにフォルダを追加しました。問題解決!
C:\Windows\SysWOW64\config\systemprofile\Desktop
Please make this folder.
C:\Windows\System32\config\systemprofile\Desktop
http://xxx.xxx.xx.xxx/cgi-bin/Scripts/excel01.pl
#!C:/perl/bin/perl
# excel01.pl
use strict;
use DBI;
use CGI qw/:standard/;
use HTML::Template;
use Win32::OLE qw(in with);
use Win32::OLE::Const 'Microsoft Excel';
use File::Copy;
$Win32::OLE::Warn = 3; # die on errors..
my (%t,$Excel,$Book,$Sheet);
print "Content-type: text/html; charset=UTF-8\n\n";
print "This page is for writing data to excel file!\n";
$Excel = Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new('Excel.Application','Quit');
$Excel->{DisplayAlerts} = 'False';
$Book = $Excel->Workbooks->Open("D:\\wwwexcel\\samples\\sample_ENQ.xls");
$t{excel} = 'sekidatabase1.xls';
$Book->SaveAs("D:\\wwwexcel\\output\\$t{excel}");
#$Book->Close;
# close
undef $Book;
undef $Excel;
1;
返回