So importieren Sie mehrere PDF-Dateien in die DatentabelleWarnung: Ich bin neu in der Skripterstellung
Herausforderung ::
- Ich habe ungefähr 500 PDF-Dateien, die jeweils eine Datentabelle enthalten, die ich in JMP importieren und in einer einzelnen JMP-Datentabelle zusammenstellen möchte.
Arbeitsablauf und Probleme ::
- Ich habe ein Skript erstellt (siehe unten), mit dem ich die tabellarischen Daten aus einem PDF importieren und an eine von mir aufgerufene Tabelle anhängen kann Final.jmp . Ich habe das Skript als separate Datei gespeichert, dh nicht in einer Datentabelle. Jedes PDF wird angehängt Final.jmp als einzelne Reihe.
- Nach jedem Import muss ich das schließen Final.jmp Tabelle und überschreiben Sie es mit der neuen, aktualisierten "endgültigen" Tabelle, die die zusätzliche Zeile aus dem neu importierten PDF enthält.
- Nach jedem Import muss ich auch alle dabei erstellten Zwischentabellen manuell schließen. (langweilig)
- Dann ändere ich den Namen der PDF-Datei im Skript, drücke auf Speichern und führe ihn erneut aus, um ein weiteres PDF zu importieren. Und so gehen die Zyklen weiter.
- Dieser Vorgang ist schneller als das manuelle Einfügen von Kopien, aber dennoch mühsam und mit nahezu Sicherheit nicht in einem für die Informatik typischen Ausmaß automatisiert.
Frage ::
- Ist es möglich, dass ein Skript wiederholt ausgeführt wird, indem jedes Mal ein neues PDF für den Import ausgewählt und an dieselbe Tabelle angehängt wird, bis alle PDFs in einem Ordner importiert wurden?
Open(
"C:\example folder\example.pdf",
PDF Tables(
Table(
table name( "1" ),
add rows( page( 1 ), Rect( 2.0419, 0.9776, 3.1993, 1.1726 ) ),
add rows( page( 1 ), Rect( 1.2137, 3.7819, 6.3603, 3.9069 ) ),
add rows( page( 1 ), Rect( 0.8717, 3.9636, 3.0796, 4.0886 ) ),
add rows(
page( 1 ),
Rect( 0.9853, 4.1436, 3.0029, 4.2686 ),
column borders( 0.9853, 2.5416, 3.0029 )
),
add rows( page( 1 ), Rect( 4.581, 4.1436, 7.297, 4.2686 ) ),
add rows(
page( 1 ),
Rect( 0.8883, 4.4136, 4.6374, 4.5386 ),
column borders( 0.8883, 1.9603, 4.6374 )
),
add rows(
page( 1 ),
Rect( 6.0143, 4.6569, 7.2498, 4.7819 ),
column borders( 6.0143, 6.5817, 7.2498 )
),
add rows( page( 1 ), Rect( 0.7556, 4.7979, 7.5908, 8.2654 ) )
)
)
);
Data Table( "1" ) << Stack(
columns( :Column 3, :Column 4, :Column 5, :Column 6 ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
Output table("2")
);
Data Table( "2" ) << Transpose(
columns( :Data ),
Output Table( "3" )
);
Data Table( "Final" ) << Concatenate( Data Table( "3" ) )
DatentabelleSkriptingBetreff: So importieren Sie mehrere PDF-Dateien in die DatentabelleSie müssen lediglich den Code durchlaufen, eine Datei nach der anderen einlesen und zur endgültigen Datentabelle hinzufügen.Die folgende JSL sollte Ihnen einen guten Einstieg in die Vorgehensweise bieten.
Names default to here(1);
// Here is an example where the first thing that is done, is to create
// the list of the files to be processed
// Many different methods can be used to do this, but for this example
// the file names are read in from a directory
theFilesList = Files in directory( <PATH to="" your="" folder="" that="" has="" the="" .pdf="" files=""> );
// Create the Final data table that will have all of the processed files
// concatenated to it
Data Table( "Final" );
// Loop across all of the files and read them in one at a time and add them
// to the Final data table
For( i = 1, i <= N Items( theFilesList ), i++,
Open(
theFilesList[i],
PDF Tables(
Table(
table name( "1" ),
add rows( page( 1 ), Rect( 2.0419, 0.9776, 3.1993, 1.1726 ) ),
add rows( page( 1 ), Rect( 1.2137, 3.7819, 6.3603, 3.9069 ) ),
add rows( page( 1 ), Rect( 0.8717, 3.9636, 3.0796, 4.0886 ) ),
add rows( page( 1 ), Rect( 0.9853, 4.1436, 3.0029, 4.2686 ), column borders( 0.9853, 2.5416, 3.0029 ) ),
add rows( page( 1 ), Rect( 4.581, 4.1436, 7.297, 4.2686 ) ),
add rows( page( 1 ), Rect( 0.8883, 4.4136, 4.6374, 4.5386 ), column borders( 0.8883, 1.9603, 4.6374 ) ),
add rows( page( 1 ), Rect( 6.0143, 4.6569, 7.2498, 4.7819 ), column borders( 6.0143, 6.5817, 7.2498 ) ),
add rows( page( 1 ), Rect( 0.7556, 4.7979, 7.5908, 8.2654 ) )
)
)
);
Data Table( "1" ) << Stack(
columns( :Column 3, :Column 4, :Column 5, :Column 6 ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
Output table( "2" )
);
Data Table( "2" ) << Transpose( columns( :Data ), Output Table( "3" ) );
// Concatenate the processed data to the Final data table
Data Table( "Final" ) << Concatenate( Data Table( "3" ), Append to first table( 1 ) );
// Cleanup the environment
Close( Data Table( "1" ), nosave );
Close( Data Table( "2" ), nosave );
Close( Data Table( "3" ), nosave );
);</PATH>Betreff: So importieren Sie mehrere PDF-Dateien in die Datentabelle@ txnelson Ich weiß nicht, wie ich meine Dankbarkeit angemessen ausdrücken soll. Du bist sehr, sehr nett. Nochmals vielen Dank für Ihre Hilfe!
Betreff: So importieren Sie mehrere PDF-Dateien in die DatentabelleEntschuldigung, ich muss mit noch mehr Fragen zurückkehren, da ich diese Schleife trotz jahrelanger akademischer Ausbildung irgendwie nicht zum Laufen bringen kann. Folgendes habe ich versucht, damit es funktioniert: Zuerst habe ich alle Dateien auf meine lokale Festplatte verschoben, da wir aus irgendeinem Grund "()" in einigen unserer Ordnernamen auf dem Server verwenden und ich den Eindruck hatte, dass dies ein Problem verursacht . Schließlich "zitierte" ich das gesamte Verzeichnis im Skript mit Anführungszeichen, was das Skript davon zu überzeugen schien, bis zur nächsten Fehlermeldung ausgeführt zu werden. Dann erzählte es mir etwas über "Pfad ist ungültig ... 'Kleber' ...". Ich habe es gegoogelt, habe aber keine Ahnung, wie ich dieses Problem angehen soll. Ich kann sehen, dass der Dateiname in der Fehlermeldung der Name einer der Dateien in dem Verzeichnis ist, mit dem ich arbeiten möchte. Zuerst dachte ich, dass der Bindestrich im Dateinamen ein Problem verursacht, aber selbst wenn ich das ändere, tritt der Fehler auf.
Ich habe unten eingefügt:
- Eine Kopie des Skripts mit einem gefälschten Verzeichnisnamen. Ich habe die Anzahl der Ordner sowie den Ordnernamen in Klammern beibehalten.
- Die Fehlermeldung aus dem Skriptfenster
- Die Fehlermeldung vom Debuggen
Wie füge ich das Verzeichnis UND den Dateinamen in die endgültige Datentabelle ein?
Vielen Dank im Voraus! (Wenn Sie dies zu trivial finden, um es zu beantworten, werde ich es verstehen.)


Names default to here(1);
// Here is an example where the first thing that is done, is to create
// the list of the files to be processed
// Many different methods can be used to do this, but for this example
// the file names are read in from a directory
theFilesList = Files in directory( "C:\directory1\subdirectory1\subdirectory2\subdirectory3 (nameof aperson)\subdirectory4\subdirectory5\subdirectory6\subdirectory7\subdirectory8\subdirectory9\subdirectory10" );
// Create the Final data table that will have all of the processed files
// concatenated to it
Data Table( "Final" );
// Loop across all of the files and read them in one at a time and add them
// to the Final data table
For( i = 1, i <= N Items( theFilesList ), i++,
Open(
theFilesList[i],
PDF Tables(
Table(
table name( "1" ),
add rows( page( 1 ), Rect( 2.0419, 0.9776, 3.1993, 1.1726 ) ),
add rows( page( 1 ), Rect( 1.2137, 3.7819, 6.3603, 3.9069 ) ),
add rows( page( 1 ), Rect( 0.8717, 3.9636, 3.0796, 4.0886 ) ),
add rows( page( 1 ), Rect( 0.9853, 4.1436, 3.0029, 4.2686 ), column borders( 0.9853, 2.5416, 3.0029 ) ),
add rows( page( 1 ), Rect( 4.581, 4.1436, 7.297, 4.2686 ) ),
add rows( page( 1 ), Rect( 0.8883, 4.4136, 4.6374, 4.5386 ), column borders( 0.8883, 1.9603, 4.6374 ) ),
add rows( page( 1 ), Rect( 6.0143, 4.6569, 7.2498, 4.7819 ), column borders( 6.0143, 6.5817, 7.2498 ) ),
add rows( page( 1 ), Rect( 0.7556, 4.7979, 7.5908, 8.2654 ) )
)
)
);
Data Table( "1" ) << Stack(
columns( :Column 3, :Column 4, :Column 5, :Column 6 ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
Output table( "2" )
);
Data Table( "2" ) << Transpose( columns( :Data ), Output Table( "3" ) );
// Concatenate the processed data to the Final data table
Data Table( "Final" ) << Concatenate( Data Table( "3" ), Append to first table( 1 ) );
// Cleanup the environment
Close( Data Table( "1" ), nosave );
Close( Data Table( "2" ), nosave );
Close( Data Table( "3" ), nosave );
);
Betreff: So importieren Sie mehrere PDF-Dateien in die DatentabelleMein Fehler ........
Data table( "Final" );
sollte angegeben worden sein
New Table( "Final" );