안녕. 스크립트를 사용하여 Excel 파일을 열려고 하면 열기 명령이 단추 상자에서 시작된 경우 Excel 가져오기 마법사가 나타나지만 열기 명령이 스크립트의 최상위 수준에 있는 경우에는 나타나지 않습니다. 참고로 이 경우에는 마법사가 표시되는 것을 원하지 않습니다. 이 동작에 대해 잘 아는 사람이 있나요? 그렇다면 고칠 수 있나요?
예를 들어, 사용자가 Excel 파일을 선택한 다음 여는 스크립트가 있습니다. 이 경우 Excel 파일은 문제 없이 JMP 테이블로 열립니다. 그러나 대신 버튼 상자 내에 Excel 파일을 열라는 명령을 놓으면 Excel 마법사가 나타납니다. 두 경우 모두 동일한 옵션을 사용하더라도 마찬가지입니다. 이는 첨부된 xlsx 파일을 사용하여 아래 스크립트에서 보여줍니다.
Names Default to Here(1);
//Get location of file:
path = Pick File("Select xlsx Table...",,
{"Excel|xlsx"}, 1,
0
);
If(path == "", Stop());
//Expression to open file:
open_exp = Expr(
Open(path,
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(1),
Data Starts on Row(2),
Data Starts on Column(1),
Data Ends on Row(0),
Data Ends on Column(0),
Replicated Spanned Rows(0),
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(1),
Column Separator String("-")
)
);
);
//Attempt to open file...works as intended (no Import Wizard)
open_exp;
//Attempt to open file via a button...always results in the Import Wizard.
win = New Window("Temp",
ButtonBox("Open xlsx",
open_exp
)
);보시다시피, 두 방법 모두 동일한 파일에 대해 동일한 옵션과 동일한 명령을 사용하고 있지만 두 가지 다른 동작이 나타납니다.
추가로, 버튼박스를 통해 xlsx 파일을 열면 열기 명령 설정이 무시되는 것 같습니다. 즉, "머리글의 행 수", "머리글은 행에서 시작", "데이터는 행에서 시작" 등의 옵션을 변경하는 경우 사용되는 첫 번째 방법은 해당 새 설정을 존중합니다. 그러나 가져오기 마법사를 사용하는 두 번째 "버튼 상자" 방법은 항상 기본 설정으로 돌아가는 것 같습니다.
참고로 저는 JMP가 Excel 마법사를 사용하지 않도록 기본 설정을 수정하고 싶지 않습니다. 이 경우에는 사용하고 싶지 않으며 이 앱의 다른 사용자에게 자신의 취향에 맞게 동일한 모드를 만들도록 요구할 수 없습니다.
내 세부사항:
JMP 프로 15.2.1
맥 OS 카탈리나 10.15.7
엑셀: 버전 16.49
누군가가 도울 수 있기를 바랍니다. 감사해요!
웬디,
이에 대한 업데이트가 있나요?
디스플레이 상자에 일부 글꼴을 설정하는 스크립트가 있지만 조직의 일부 컴퓨터에는 최소한의 글꼴이 설치되어 있는 것으로 나타났습니다.
그래서 내 사용자는 "알 수 없는 글꼴"이라는 팝업을 많이 받습니다. 모든 것을 기본 글꼴로 되돌리는 대신 Try() 블록으로 래핑하려고 했지만 도움이 되지 않았습니다.
Craige는 Batch Interactive(1)를 사용하라고 조언했지만 아래의 간단한 예에서 볼 수 있듯이 이 방법도 작동하지 않는 것 같습니다.
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = dt << Bivariate( Y( :height ), X( :weight ) );
rbiv = biv << Report;
For Each({box, index}, (rbiv << XPath( "//AxisBox/MouseBox/DropBox/TextEditBox" )),
Batch Interactive(1);
Try(box << Set Font( "Agency FF", 13 ));
Batch Interactive(0);
);이 경우 Batch Interactive(1)가 작동하지 않는 이유와 누락된 글꼴을 처리하는 방법에 대해 알고 계시나요?
안녕, @Craige_Hales .
Batch Interactive()는 실험적인 것으로 간주되므로 문서화되지 않았습니다.그러나 JMP 개발팀에는 해당 기능을 전면적으로 지원하도록 제안했습니다.해당 요청에 이 논의를 추가하겠습니다.일반적인 사용 사례는 버튼 클릭과 같은 대화형 작업에서 실행되는 스크립트의 일부입니다.
"Excel 마법사" 옵션에 대한 설명서는 다음 위치에 포함되어 있습니다.
Excel 데이터를 여는 스크립팅 인덱스 예제에 이를 포함해 달라는 요청을 전달하게 되어 기쁘게 생각합니다.
보다 모달 JMP 경고 무시 또는 비활성화 일괄 대화형 기능의 경우. 버튼 기반 스크립트 버전 알고 있다 대화형이어야 하며 대화형 마법사를 사용하는 데 도움이 됩니다.
또한, 스크립트에서 Excel 가져오기 마법사 우회 가지고있다 더 나은 답변 .
마지막으로, 반대 문제가 있고 마법사를 원하는 경우 다음을 참조하세요. 기본 설정을 변경하지 않고 Excel 마법사를 사용하도록 강제 Open()
@Wendy_Murphrey 이 두 가지 모두 문서에서 발견하기 어려운 것 같습니다.
편집: 링크 SetFont를 사용한 이상한 변형