Excelインポートにファイル名を含めるインポートされた Excel テーブルにファイル名の列を含める方法はありますか? 複数ファイル インポート ツールを使用すると、これを含めるオプションがありますが、単一ファイルをインポートする場合は同等のものが見つかりません。
get path/get name を使用してそれを列に書き込もうとしましたが、「Sheet1.jmp」が得られるだけです。
私が使用した「開く」コマンドはウィザードからコピーしたものです。
dtt.file= Pick File(); // Opens File dialogue
Open(
dtt.file,
Worksheets( "Sheet1" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 2 ),
Headers Start on Row( 1 ),
Data Starts on Row( 3 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
);
);
データアクセスRe: Excelインポートにファイル名を含めるこの解決策をありがとうございます。
私も同様の問題を抱えており、複数の Excel ファイルを開くためにループに入れる必要がありました。
Names Default To Here( 1 );
path = Pick Directory( "Select a directory" );
file_list = Files In Directory(path, recursive);
for(i = 1, i <= N Items(file_list), i++,
filename = path||file_list[i];
dt = Open(
filename,
Worksheets( "Sheet1" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 41 ),
Data Starts on Row( 42 ),
Data Starts on Column( 1 ),
Data Ends on Row( 54 ),
Data Ends on Column( 20 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
)
);
dt << New Column ("Filename", Character, "Nominal", << Set Each Value(Word(-1, file_list[i], "/")));
);Re: Excelインポートにファイル名を含めるありがとう! 以下を使用すると、私が達成しようとしていたことはうまくいきました。
dt << New Column("Filename", Character, "Nominal", << Set Each Value(Word(-1, dtt.file, "/")));
Re: Excelインポートにファイル名を含める複数ファイルのインポートのような直接的な解決策があるかどうかはわかりませんが、データをロードした後に新しい列を作成できます。
以下にこれを行う 2 つの方法を示します。1 つは選択したファイル パスを使用し、もう 1 つはテーブル名を使用します (これはシート名に影響される可能性があります)。
Names Default To Here(1);
dtt.file= Pick File(); // Opens File dialogue
dt = Open(
dtt.file,
Worksheets( "Sheet1" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 2 ),
Headers Start on Row( 1 ),
Data Starts on Row( 3 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
);
);
dt << New Column("Filename", Character, "Nominal", << Set Each Value(Word(-1, dtt.file, "/")));
dt << New Column("Filename", Character, "Nominal", << Set Each Value(dt << Get Name()));関数、特に Word() の詳細については、「スクリプト索引」を参照してください。