Namazu-win32-users-ja(旧)


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

解決しました( Re: 原因不明のハングアップ? ( Re: パスワード付文書のインデックス化 ) )



田村@島精機製作所です。

佐藤さん:
> getCellsとgetShapesからenumを呼び出してますね。やはりセル範囲の異常
> の可能性が濃厚です。

  X-Mail-Count: 00526 で教えていただいたマクロ

    > Sub usesize()
    >  Dim swork As String
    >  swork = "幅:" & ActiveSheet.UsedRange.Columns.Count & _
    >          "/高さ:" & ActiveSheet.UsedRange.Rows.Count
    >  MsgBox swork
    > End Sub

  を実行してみました。
  シートの行数が65000行あまりありました。そこにはなにやら書き損じと
  思われる文字がありました。こういうケースもありますし、また、テーブルを
  作るためにわざと見えにくい位置へテーブルの内容を書く場合もありますね。

  ともあれ、文書からその部分を削除することで正常に動作しました。

  次に X-Mail-Count: 00470 で佐藤さんが書かれていたように、oleexcel.pl
  を修正しました。

  204行目から
    >     #my $ur = $sheet->{UsedRange};
    >     my $tmpur = $sheet->{UsedRange};
    >     my $tmprc = ($tmpur->Rows->Count    >100 ? 100 :
$tmpur->Rows->Count);
    >     my $tmpcc = ($tmpur->Columns->Count >100 ? 100 :
$tmpur->Columns->Count);
    >     my $ur = $sheet->Range(
    >         $sheet->Cells($tmpur->Rows->Row, $tmpur->Columns->Column),
    >         $sheet->Cells($tmpur->Rows( $tmprc )->Row, $tmpur->Columns(
$tmpcc )->Column)
    >       );

  この変更で元の文書には全く手をつけずに、インデックス化が正常進行していま
す。

あとはどれくらいの行数、列数で巨大なセルを持つ文書をハングアップさせずにイン
デックス化
できるか妥協点を探っていきたいと思います。

本当に助かりました。ありがとうございました。

それでは。