안녕하세요,
기존 EXCEL 파일(단일 특정 행)을 수정하고 이를 jmp의 원래 폴더에 다시 저장하는 방법이 있습니까?
어떤 도움이라도 주시면 감사하겠습니다.
감사합니다!
Window OS를 사용하고 있고 약간의 VBscript를 알고 있다면 프로그램 실행을 사용하여 이 작업을 수행할 수 있습니다.
첨부된 스크립트는 wscript를 사용합니다(제가 아는 한 Windows OS에서는 항상 그렇습니다). Big Class를 연 다음 Excel로 저장하여 기존 Excel 통합 문서를 에뮬레이트합니다.
간단한 VBscript는 행 E3의 값을 변경하고 셀을 노란색으로 표시합니다. 이 스크립트는 JSL을 사용하여 VBscript를 작성하지만 스크립트가 존재할 수도 있고 JMP 또는 기타 여러 방법에서 실행될 수도 있습니다.
JMP는 wscript를 사용하여 저장된 VBscript를 실행합니다. 이는 통합 문서를 업데이트하고 Excel의 다른 기능을 잃지 않는 한 가지 옵션입니다.
물고기를 나눠주기보다 물고기 잡는 법을 가르쳐준다는 마음으로 올바른 방향을 알려드리겠습니다. 첫 번째 단계는 JMP가 테이블을 가져올 스크립트를 작성하도록 하는 것입니다. 필요한 경우 Excel 가져오기 마법사를 사용하여 Excel 파일 중 하나를 수동으로 가져옵니다. 결과 테이블에는 Excel 파일을 가져오는 스크립트가 포함된 "소스"라는 스크립트가 있습니다. 다음과 같이 보일 수 있습니다.
Open(
"filename.xlsx",
Worksheets( "Sheet 1" ),
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( "-" )
)
);
이것은 자신의 스크립트의 시작입니다. 스크립트 창에 복사하세요. 가져온 Excel 파일의 데이터 테이블에 핸들을 추가하려면 "Open(" 앞에 " = "를 넣으면 됩니다.
다음으로 테이블 내용을 수정해야 합니다. 원하는 행과 열의 특정 값에 액세스하고 다음과 같이 값을 설정할 수 있습니다.
dt:<COLNAME>[<ROW number="">] =<DESIRED value=""></DESIRED></ROW></COLNAME>
열 이름에 특수 문자가 있으면 dt:Name(" ")[ ].
마지막으로 결과를 내보내야 합니다. JMP 테이블을 .xlsx 형식으로 저장하는 과정을 안내하는 몇 가지 다른 게시물이 커뮤니티에 있습니다. 최근 내용은 다음과 같습니다. https://community.jmp.com/t5/Discussions/Saving-Data-Table-to-Excel-format/td-p/40392
스스로 조각들을 모아서 시도해 보시기를 강력히 권합니다. 이것이 스크립팅에 능숙해지는 유일한 방법입니다. 특정 부분에서 막히는 경우 저희가 도와드리겠습니다.
저는 이 작업을 수행할 수 있는 JSL 스크립트를 찾고 있습니다.
Excel 파일을 가져오고 수정한 다음 xlsx 형식으로 다시 내보낼 수 있지만 그렇게 하면 Excel 관련 기능이 손실됩니다. 이는 수식이나 특수 형식 등이 없이 열 헤더와 데이터만 있는 스프레드시트가 있는 경우에만 작동합니다.