Excel 통합 문서에서 시트 목록을 어떻게 얻을 수 있습니까?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Open Database()를 사용하여 Excel 시트를 여는 상황이 있습니다.
특정 시트의 특정 열을 원하기 때문에 이것은 좋은 방법이었습니다. 따라서 SQL SELECT 문을 사용하는 것이 이상적입니다.
이제 시트 이름에 대한 표준화가 없음을 발견했습니다. 그래서 내가 하고 싶은 것은 Excel 통합 문서를 쿼리하고 그 안에 있는 시트 목록을 가져오는 것입니다. 그런 다음 내 코드에서 일부 논리를 사용하여 실제로 원하는 것을 결정할 수 있습니다(표준화는 없지만 시트 이름에 StringA 또는 StringB가 포함되어 있는지 확인하여 내가 원하는 것을 파악할 수 있는 "유사성"이 충분하기 때문입니다. 예를 들어 StringC)
이것이 JSL에서 어떻게 수행 될 수 있는지 모르겠습니다. 검색만 하면 Excel 통합 문서의 시트를 반환하는 VBScripting 등을 사용하는 코드 예제가 많이 있지만 그다지 도움이 되지 않습니다.
나는 그것을 할 SQL 문을 찾으려고 노력했지만 통합 문서의 "테이블"/ 시트를 나열하는 테이블 이름을 모릅니다.
파일 -> 데이터베이스 -> 테이블 열기를 사용하고 Excel 데이터 소스에 연결하면 스키마 - 테이블 열에서 사용 가능한 모든 시트가 나열되기 때문에 JMP가 이 작업을 수행할 수 있다는 것을 알고 있습니다. 마찬가지로 개별 Excel 워크시트를 선택하도록 사용자 기본 설정을 지정하고 Open() 명령을 사용하면 열려는 시트를 선택하라는 메시지가 표시됩니다.
제 질문은 JMP가 스크립팅 언어에 Excel 시트 이름을 파악하는 기능을 제공하는지 아는 사람이 있습니까?
많은 감사
도마
Re: Excel 통합 문서의 시트 목록을 어떻게 얻을 수 있습니까?마지막 단계는 Excel 워크시트를 열기 전에 데이터 테이블이 열려 있으면 엉망이 될 수 있습니다.빠른 수정은
for(i=1, i <= nSheets, i++, dtname = 데이터 테이블(i +countBefore ) << 이름 가져오기);
Excel 통합 문서에서 시트 목록을 어떻게 얻을 수 있습니까?위의 코드 조각이 수정되었습니다.
Re: Excel 통합 문서의 시트 목록을 어떻게 얻을 수 있습니까?다음은 테이블이 매우 큰 경우 실행 불가능할 수도 있는 매우 투박한 방법입니다. 그냥 조각 ...
1. 파일>열기에서 모든 Excel 시트를 열도록 기본 설정을 지정합니다.
2. countBefore = N 테이블();
3. open()을 사용하여 Excel 파일 열기
4. countAfter = N 테이블();
5. nSheets = countAfter - countBefore
5. dtname = {};
5. for(i=1, i <= n시트, i++, dtname = 데이터 테이블(i) << get name);
그런 다음 dtname은 가지고 놀 수 있는 시트 이름 목록이며 원하지 않는 테이블을 닫을 수 있습니다.
메시지 편집자: mpb
코드 조각의 인덱싱이 수정되었습니다.
Re: Excel 통합 문서의 시트 목록을 어떻게 얻을 수 있나요?오래된 스레드지만 유용하다고 생각합니다. XLSX 파일의 내용을 직접 열어서 이 작업을 수행하는 스크립트가 있습니다. XLSX 파일은 워크북의 속성, 구조 및 요소를 정의하는 XML 파일 모음이 있는 ZIP 파일입니다.
Names Default To Here( 1 );
filename = pick file("Choose Excel File", "$DOCUMENTS", {"Excel Files|xlsx"} );
zipxlsx = Open( filename, Zip );
zip_file = zipxlsx << read( "xl/workbook.xml", Format( blob ) );
// Open the file
zz = Open(
zip_file,
invisible,
xml,
XML Settings(
Stack( 0 ),
Row( "/workbook/sheets/sheet" ),
Col(
"/workbook/sheets/sheet/@name",
Column Name( "name" ),
Fill( "Use Once" ),
Type( "Character" ),
Format( {"Best"} ),
Modeling Type( "Nominal" )
)
)
);
worksheets=(zz:name << get values);
close(zz, nosave);
write(worksheets);Re: Excel 통합 문서의 시트 목록을 어떻게 얻을 수 있나요?
Re: Excel 통합 문서의 시트 목록을 어떻게 얻을 수 있나요?진짜요? 이걸 어떻게 몰랐을까요. 고맙습니다. 정말 도움이 됩니다!
Re: Excel 통합 문서의 시트 목록을 어떻게 얻을 수 있나요?어떻게 그걸 몰랐을까요.....당신은 인간이니까요. JMP에서 모든 것을 알 수 있는 사람은 아무도 없고, 18개월마다 새로운 기능과 함수가 새 릴리스로 넘쳐납니다. 개인적으로 저는 당신과 JMP에서 제가 모르거나 더 이상 기억하지 못하는 너무나 많은 것에 대한 당신의 기여에서 많은 것을 배웁니다.