4

Perl スクリプトを使用してデータを収集しています。データは、Excel を使用して他のユーザーが確認および処理する必要があります。現在、データをタブ区切りのテキスト ファイルとして書き出しており、Excel でこれを問題なく開くことができます。

ただし、データには階層があり、レビュアーにとってはフラットなリストよりもツリーの方が見やすいでしょう。つまり、データを列で表示するのではなく、

foo    foo1
foo    foo2
foo    foo3
bar    bar1
bar    bar2
...

クリックして展開するツリーとして表示します。

foo
    foo1
    foo2
    foo3
bar
    bar1
    bar2
...

Excel のグループ機能 (2007 年に [データ] > [アウトライン] > [グループ] の下にある) は、ピボット テーブルより操作が簡単で、このプレゼンテーションに適しています。

この列のフラットなリストからグループ化されたリストに移動する最も簡単な方法は何ですか? 理想的には、インポート時に Excel がグループ化を自動的に適用するテキスト形式でデータを書き出すことができました。あるいは、マクロやテンプレートを適用するなど、レビュー担当者がデータをインポートした後に適用できる手順が少数であれば、それも問題ありません。

4

4 に答える 4

3

既に perl を使用しているため、 Excel アウトラインをサポートする優れた CPAN モジュールSpreadsheet::WriteExcelを使用して、perl で直接 Excel ファイルを作成することをお勧めします。

次のように動作します:

     .
     .
     $worksheet->write('A2',  'foo');
     $worksheet->write('B3',  'foo1');
     $worksheet->write('B4',  'foo2');
     $worksheet->write('B5',  'foo3');
     $worksheet->set_row(2,  undef, undef, 0, 1, 1);
     $worksheet->set_row(3,  undef, undef, 0, 2);
     $worksheet->set_row(4,  undef, undef, 0, 2);
     $worksheet->set_row(5,  undef, undef, 0, 2);
     .
     .
于 2009-06-24T15:28:09.897 に答える
1
  1. フィルタリングするリストで、列ヘッダーを含むすべての行を選択します。

    ShowTip 範囲の左上のセルをクリックし、右下のセルまでドラッグします。

  2. [データ] メニューの [フィルター] をポイントし、[高度なフィルター] をクリックします。
  3. [高度なフィルター] ダイアログ ボックスで、[リストをフィルター処理する] をクリックします。
  4. [一意のレコードのみ] チェック ボックスをオンにして、[OK] をクリックします。

    フィルタリングされたリストが表示され、重複する行は非表示になります。

  5. [編集] メニューの [Office クリップボード] をクリックします。

    [クリップボード] 作業ウィンドウが表示されます。

  6. フィルタリングされたリストがまだ選択されていることを確認し、[コピー] [コピー] ボタンをクリックします。

    フィルタリングされたリストは境界線で強調表示され、選択はクリップボードの上部に項目として表示されます。

  7. [データ] メニューの [フィルター] をポイントし、[すべて表示] をクリックします。

    元のリストが再表示されます。

  8. 削除キーを押します。

    元のリストは削除されます。

  9. クリップボードで、フィルタリングされたリスト項目をクリックします。

    フィルタリングされたリストは、元のリストと同じ場所に表示されます。

于 2009-06-24T14:43:35.167 に答える
1

最近のバージョンの Excel (ここでは 2003 を使用) では、XML 形式の xlsx を使用できます。xlsx ファイルは、XML ファイルの zip です。必要な設定で Excel で開くファイルを作成する場合は、これを試してください。まず、必要なグループ化を使用してテンプレート ファイルを作成します。xlsx として保存します。標準の zip ソフトウェアを使用してファイルを解凍します。中身を見てみましょう。特にグループ化を行ったことはありませんが、スプレッドシート内のすべてのコマンドは xml 形式で存在するため、グループ化がどこに設定されているかを把握する必要があります。次に、xml に適切な変更を加えて再圧縮するだけです。少し手間がかかりますが、この方法を使用して、事前にグループ化されたファイルをプログラムで作成できます。これに特化した Perl ライブラリがあるかもしれませんが、私にはわかりません。

于 2009-06-24T15:14:31.033 に答える
0

CSV ファイルの生成も非常に簡単です。OpenOffice では解析方法を選択できますが、コンマ区切りの列 (引用符なし) と CRLF 区切りの行を除きます。

A1,A2,A3
B1,B2,B3

于 2009-06-24T15:19:29.027 に答える