스크립트에서 Excel 가져오기 마법사 우회응용 프로그램 창의 "확인" 버튼을 누를 때 JMP 응용 프로그램 내에서 .xslx 파일을 열려고 합니다. 내 문제는 Excel 마법사 창을 무시하고 직접 열기가 어렵다는 것입니다.
Open() 문에서 지정한 Excel 옵션을 사용하여 JMP에서 파일을 열었으면 합니다. 내 Open() 문 옵션을 올바르게 설정하기 위해 수동으로 파일을 열고 테이블의 소스 스크립트에서 Open() 문을 복사했으므로 모든 옵션이 올바른 것 같습니다. 다중 워크시트 Excel 파일이고 JMP에서 하나의 워크시트만 필요하므로 Open() 상태는 다음과 같습니다.
Open(
"~/Desktop/test.xlsx",
Worksheets( "Data" ),
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( 1 ),
Data Starts on Row( 2 ),
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( "-" )
)
)
이상하게도 독립 스크립트에서 이 open 문을 실행하면 모든 것이 원하는 대로 발생합니다. Excel 마법사 창이 팝업되지 않고 파일이 바로 열립니다.
그러나 내가 만들고 있는 JMP 응용 프로그램 스크립트의 일부로 동일한 Open() 문을 포함하면 마법사 창이 열리는 것을 멈출 수 없는 것 같습니다. (내 애플리케이션의 사용자 입력 창에서 "확인" 버튼을 클릭하면 Open() 문이 호출됩니다.)
왜 이런 일이 발생하고 중지하는 방법에 대한 아이디어가 있습니까?
Re: 스크립트에서 Excel 가져오기 마법사 무시@mjoner - 예, 이 해결 방법은 JMP 16.0 이상에서 계속 필요합니다.
Re: 스크립트에서 Excel 가져오기 마법사 무시@danschikore 여기에 언급된 절차가 여전히 이 작업을 수행하는 유일한 방법입니까? 원하는 스크립팅 동작을 얻기 위해 이 kludge에 작성할 필요성을 제거할 생각이 있습니까?
Re: 스크립트에서 Excel 가져오기 마법사 무시단,
이 후속 조치에 감사드립니다. 나는 결국 다른 모든 것을 시도했고 결국 @ms Include() 파일 안에 open 문을 삽입하는 의 솔루션입니다. 이것은 진행 상황을 설명하고 다른 해결 방법을 제공합니다.
남자Re: 스크립트에서 Excel 가져오기 마법사 무시Excel 파일을 읽기 위한 지원 라이브러리의 차이로 인해 Windows와 Mac에서 동작이 다른 것으로 나타났습니다.Mac에서 직접 호출된 Open() 스크립트는 예상대로 파일을 열지만 단추 클릭에서 호출된 Open() 호출은 Excel 마법사를 불러옵니다.
해결 방법 @ms 제공하면 JMP가 "배치" 모드로 전환되어 버튼을 통하지 않고 스크립트가 직접 실행되는 것처럼 작동하도록 로직이 변경됩니다.중간 파일이 필요하지 않은 다른 방법은 ScriptBox에 스크립트를 포함하고 상자에서 <
// One way to force JMP into batch mode is to embed the script in a ScriptBox
// and invoke <<RUN on="" the="" script="" box.="" new="" window=""></RUN>
Re: 스크립트에서 Excel 가져오기 마법사 무시댄, 응답해 주셔서 감사합니다. 이것을 시도해보고 문제를 일으키는 응용 프로그램을 별도로 보내 드리겠습니다. 조금만 주세요. 남자Re: 스크립트에서 Excel 가져오기 마법사 무시첨부된 JMP 애플리케이션을 사용하여 JMP 13/14/15에서 이 문제를 재현해 보았습니다.버튼 누름 스크립트는 아래와 같으며 지금까지 시도한 모든 버전에서 테이블을 올바르게 엽니다.이 예제가 효과가 있습니까?이것이 개발 중인 응용 프로그램과 어떻게 다른가요? 그리고 사용 중인 JMP 버전은 무엇입니까?
Button1Press = Function( {this},
// This function is called when the button is pressed
Open(
"$SAMPLE_IMPORT_DATA\VA Lung Cancer.xls",
Worksheets( "VA Lung Cancer" ),
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( 1 ),
Data Starts on Row( 2 ),
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 가져오기 마법사 무시감사합니다. 이것은 미래에 도움이 될 것입니다. 그 동안 내 상황에 대한 다른 해결 방법을 찾았지만 다음 번에 도구 상자에 포함하는 것이 좋습니다.
Scripting Guide (p. 333)에 Open() 함수의 문맥 민감성에 대해 설명하고 이를 Excel 마법사와 관련시키는 섹션이 있지만 그다지 명확하지 않습니다. 여기에서 논의된 동작이 Open() 구현의 단점(?버그)이거나 더 많은 문서가 필요하다고 생각하지 않을 수 없습니다.
예를 들어, 한 가지 좋은 점은 기본 설정을 해제하는 대신 마법사를 사용하지 않을지 여부에 대한 Open()의 명시적 옵션입니다. 내 두 센트.
Re: 스크립트에서 Excel 가져오기 마법사 무시나는 또한 이것을 경험했고 하나의 해결 방법을 찾았습니다. 을 살리다 열려 있는() 명령을 별도의 스크립트로 사용하고 포함하다() 코드를 실행합니다.
// Create a jsl file with the Open() command
f = Save Text File(
"~/Desktop/test.jsl",
Char(
Name Expr(
Open(
"~/Desktop/test.xlsx",
Worksheets( "Data" ),
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( 1 ),
Data Starts on Row( 2 ),
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( "-" )
)
)
)
)
);
// Invoke Open() via user input
nw = New Window( "open test", Button Box( "OK", Include( f ) ) );Re: 스크립트에서 Excel 가져오기 마법사 우회누군가가 이것에 대해 궁금해하고 있다면, 여기에 대안적인 접근 방식이 있습니다: 1. Excel 열기 방법에 대한 사용자 기본 설정을 가져와 저장합니다. 2. 필요한 것으로 변경합니다. 3. 파일을 엽니다. 4. 설정을 원래대로 변경합니다.
예를 들어
originalPref = 기본 설정 가져오기(Excel Open Method);
기본 설정 설정(Excel Open Method("모든 시트 열기"));
myPath = 파일 선택(....등)
dt = Open(내 경로...)
평가(원래 선호도)
Re: 스크립트에서 Excel 가져오기 마법사 우회저는 Mac에서 JMP 17.2를 사용하면서 여전히 이 문제를 겪고 있으며, Excel 시트를 여는 코드에 사용자가 값을 입력해야 하는 변수가 있습니다.