複数のPDFファイルからPDFファイル名でタグ付けされた1つのテーブルにデータをインポートするにはどうすればよいですか?こんにちは、
100を超えるPDFを含むフォルダーがあり、すべて一貫した形式で設定されています。 各PDFのファイル名は、使用したいバッチ番号を表しており、各PDFには、抽出したい特定のデータテーブルがあります。
私の目的は、すべてのPDFについて同じデータテーブルを抽出し、PDFファイル名(バッチ番号)でタグ付けされた、抽出されたすべてのデータテーブルを連結することです。 最後に、連結されたテーブルの列を分割し、PDFファイル名でグループ化して、最終的なテーブルを作成します。
私はこれを手動で行って、必要な最終テーブルに到達することができますが、すべてのPDFでテーブルを個別に開いて選択する必要があるため、非常に時間がかかります。
したがって、これを支援できるJSLはあるのでしょうか。
私はスクリプトを初めて使用しますが、最初の2つのPDFファイルに必要なものを正確に提供するスクリプトを作成することができました。
//Opening up the first two files (Batch Number 1 & Batch Number 2) from the folder
Open(
"C:\Example folder\Batch 1.pdf",
PDF Tables(
Table(
table name( "Batch 1" ),
add rows( page( 1 ), Rect( 0.4143, 5.3995, 7.5889, 6.6781 ) )
)
)
)
;
Open(
"C:\Example folder\Batch 2.pdf",
PDF Tables(
Table(
table name( "Batch 2" ),
add rows( page( 1 ), Rect( 0.4143, 5.3995, 7.5889, 6.6781 ) )
)
)
)
;
//Concatenating the data for the first 2 batches into one table and adding a source column:
Data Table( "Batch 1" ) << Concatenate(
Data Table( "Batch 2" ),
Create source column,
Output table("Concat")
)
;
//Splitting by the concatenated table by the Characteristic column and grouping by source column (batch number) to create a Final table:
Data Table( "Concat" ) << Split(
Split By( :Characteristic ),
Split( :Value ),
Group( :Source Table ),
Remaining Columns( Drop All ),
Sort by Column Property,
Output table("Final")
)
;
//Close all other tables
Close("Batch 1", no save)
;
Close("Batch 2", no save)
;
Close("Concat", no save)このスクリプトを調整して、すべてのPDFファイル(最初の2つだけでなく)を開き、PDFファイル名でタグ付けされたデータのファイナルテーブルを作成する必要があります。
私を助けることができる人はいますか?
どうもありがとう、
アリシア
データ表スクリプティングRe:複数のPDFファイルからPDFファイル名でタグ付けされた1つのテーブルにデータをインポートするにはどうすればよいですか?2つ動作している場合、コードはデータテーブルを連結するおそらくそこに着くでしょう。 FilesInDirectory()が必要な関数である可能性があります。
同様の例がいくつかあります。ディレクトリ内のファイルを検索すると、おそらくそれらが見つかります。
それがあなたをそこに連れて行かないかどうかもう一度尋ねてください、私はあなたが近くにいると思います。
Re:複数のPDFファイルからPDFファイル名でタグ付けされた1つのテーブルにデータをインポートするにはどうすればよいですか?必要な手順を含む例を次に示します。 の投稿@Craige_Halesこれらがどのように機能するかを理解するのに役立ちます。
Names Default To Here( 1 );
// Prepare a directory
tempdir = "$TEMP\pdf_test";
If( !Directory Exists( tempdir ),
Create Directory( tempdir ),
file_lst = Files In Directory( tempdir );
For( i = 1, i <= N Items( file_lst ), i++,
Delete File( tempdir || "/" || file_lst[i] )
);
);
// Open sample Table
cdt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// Prepare PDF's
For( i = 1, i <= 10, i++,
jrn = cdt << Journal;
jrn << save pdf( tempdir || "/" || Char( i ) || "_Big Class.pdf" );
jrn << close window;
);
// Read PDF's
file_lst = Files In Directory( tempdir );
table_lst = {};
For( i = 1, i <= N Items( file_lst ), i++,
Insert Into( table_lst, Open( tempdir || "/" || file_lst[i], PDF All Tables() ) )
);
// Concat PDF's
If( N Items( table_lst ) > 1,
result_table = table_lst[1] << concatenate( table_lst[2 :: N Items( table_lst )], Output Table( "ResultTable" ), Create Source Column )
);
// Close single PDF's
For( i = 1, i <= N Items( table_lst ), i++,
Close( table_lst[i], noSave )
);
split_table = result_table << Split(
Split By( :sex ),
Group( :Source Table ),
Split( :age ),
Remaining Columns( Drop All ),
Sort by Column Property, output table("Split_Result")
);Re:複数のPDFファイルからPDFファイル名でタグ付けされた1つのテーブルにデータをインポートするにはどうすればよいですか?どうもありがとう@Craige_Halesそして@Georgあなたの助けに。 スクリプトを適応できるかどうか試してみます。 本当に感謝!