Wie erstelle ich eine Textdatei so, wenn es in Excel geöffnet wird, werden zusammen gruppiert Zeilen?

StackOverflow https://stackoverflow.com/questions/1038811

Frage

Ich sammle einige Daten über einen Perl-Skript. Die Daten müssen von anderen überprüft und verarbeitet werden mit Hilfe von Excel. Derzeit schreibe ich die Daten aus als getabulatortrennte Textdatei und Excel diese ganz gut öffnen können.

Es gibt eine Hierarchie auf die Daten, aber, und es wäre einfacher für die Gutachter einen Baum zu sehen, anstatt eine flache Liste. Das heißt, anstatt die Daten in den Spalten präsentiert,

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

präsentieren sie als Click-to-expand Baum:

foo
    foo1
    foo2
    foo3
bar
    bar1
    bar2
...

Excel Gruppenfunktion (im Jahr 2007 unter „Data> Gliederung> Group“ gefunden) ist ein gutes Spiel für diese Präsentation, ein wenig einfacher sind, als Pivot-Tabellen zu arbeiten.

Was ist der einfachste Weg für uns aus dieser flachen Liste von Spalten auf diesen gruppierte Liste zu gehen? Idealerweise könnte ich die Daten in Textform schreiben, dass Excel die Gruppierung automatisch anwenden würde, wenn es importiert wurde. Alternativ kann, wenn es eine kleine Anzahl von Schritten war die Gutachter nach dem Import der Daten anwenden könnten, wie ein Makro oder eine Vorlage gewählt hat, das wäre auch in Ordnung sein.

War es hilfreich?

Lösung

Da Sie bereits Perl verwenden, schlage ich vor, dass Sie die Excel-Datei direkt in Perl mit dem ausgezeichneten CPAN-Modul Tabelle :: WriteExcel die Unterstützung hat Excel umreißt .

Funktioniert etwas wie folgt aus:

     .
     .
     $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);
     .
     .

Andere Tipps

  1. Wählen Sie alle Zeilen, einschließlich der Spaltenüberschriften in der Liste, die Sie filtern möchten.

    ShowTip   Klicken Sie auf die linke obere Zelle des Bereichs, und ziehen Sie nach rechts unten Zelle.

  2. Auf dem Menü Daten auf Filter, und dann auf Spezialfilter klicken.
  3. Im erweiterten Filter-Dialogfeld auf die Liste filtern, an seinem Platz.
  4. Wählen Sie die einzigartige Datensätze nur das Kontrollkästchen, und klicken Sie auf OK.

    Die gefilterte Liste angezeigt wird und die doppelten Zeilen versteckt sind.

  5. Auf dem Menü Bearbeiten auf Office-Zwischenablage.

    Der Aufgabenbereich Zwischenablage angezeigt wird.

  6. Stellen Sie sicher, dass die gefilterte Liste noch ausgewählt ist, und dann kopieren klicken.

    Die gefilterte Liste mit begrenzenden Konturen hervorgehoben und die Auswahl erscheint als ein Punkt an der Spitze der Zwischenablage ab.

  7. Auf dem Menü Daten auf Filter, und klicken Sie dann auf Alle anzeigen.

    Die ursprüngliche Liste wird erneut angezeigt.

  8. Drücken Sie die ENTF-Taste.

    Die ursprüngliche Liste gelöscht wird.

  9. In der Zwischenablage, klicken Sie auf die gefilterte Liste Element.

    Die gefilterte Liste erscheint in der gleichen Position wie die ursprüngliche Liste.

Neuere Versionen von Excel (2003 ist das, was wir hier verwenden) kann ein XML-Format verwenden, xlsx. Eine xlsx-Datei ist eine zip einer XML-Datei. Wenn Sie eine Datei erstellen möchten, die in Excel mit den Einstellungen öffnen Sie wollen, versuchen Sie dies: zuerst eine Vorlage-Datei erstellen, mit der Gruppierung Sie wollen. Speichern Sie es als xlsx. Entpacken Sie die Datei Ihre Standard-ZIP-Software. Werfen Sie einen Blick auf das, was drin ist. Ich habe nicht mit Gruppierung speziell gearbeitet, aber alle Befehle in Ihrer Tabelle werden in XML-Form da sein, werden Sie brauchen, um herauszufinden, wo die Gruppierung festgelegt ist. Dann ist es eine Frage der entsprechenden Änderungen vorzunehmen, um das XML-und Wieder Zuziehen. Ein wenig Aufwand, aber Sie können diese Methode verwenden, um programm Dateien zu erstellen, die vorgruppiert sind. Es kann Perl-Bibliotheken speziell darauf ausgerichtet, ich weiß es nicht.

Eine CSV-Datei ist auch sehr einfach zu erzeugen. Openoffice können Sie festlegen, wie die Dinge zu analysieren, aber excepts kommagetrennte Spalten Excel (ohne jede Art von Quote) und CRLF begrenzt Reihen.

A1,A2,A3
B1,B2,B3

etc.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top