Namazu-win32-users-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Win2k 上の Excel2002 で、 oleexcel.pl フィルタでセル内が index されない



小嶋@青森です。

標記の件については、以前(昨年12月)によねざわさんが投稿してました
(msg01193.html)が、最近、私も同じような環境で同じ目にあったので、
ご報告します。

よねざわさんによれば(msg01204.html)
>oleexcel.plの SaveAs methodの項目に、「'」シングルクォートが
>なかったためでした。

ということで、解決したと報告がありましたが、私の環境ではそれでは
解決しませんでした。というより、私は、そういう問題ではないのでは?
と思っております。

ただ、SaveAsメソッドが動いていないというのは、私の環境でも同じと
判断します。
(oleexcel.plの各所で、いろんな変数の内容をprintで出力させると、
だいたいわかります。)

やはり、Excelのver.upに伴い、OLE周りが一部変更になった(あるいは
Bug)なのではないでしょうか。

仕方がないので、当面のところ、oleexcel.plの
     # SaveAs xlText FileFormat
     my $ret = $sheet->SaveAs({
         FileName        =>   $tmpfile,  #
         FileFormat =>   'xlText',       #
         CreateBackup    =>   0          # False
     });

の部分を、全部コメントアウトし、代わりに、

# 代替手段
open (FH1, ">>$tmpfile") or return("$tmpfile: $!\n");
my $array = $sheet->UsedRange->{'Value'};
foreach my $ref_array (@$array){
     foreach my $cell (@$ref_array){
          print FH1 $cell;
          }
     }
close (FH1);
my $ret = "1";
# 代替手段おわり

というコードを挿入して、ごまかしてます。一部のCellの値は、

Win32::OLE::Variantうんたらかんたら・・

になってしまって取得できませんが、ごく一部なので、ほっといております。

念のため、この問題が起きた環境
Win2k pro SP2
Office XP pro
Namazu 2.0.10
ActivePerl Build631
一太郎用に自作filterを導入のため、oletaro.plははずしています。