JSL 결과를 PowerPoint로 자동화하고 사용자 지정하는 방법<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />모두들 안녕 ,
JSL에서 맞춤형 Powerpoint Presentation@@을 자동화하려고 합니다. 전체 분석을 성공적으로 자동화했지만 이 마지막 단계를 자동화하는 방법, 즉 JSL에서 생성한 그림과 표를 현재 가지고 있는 기존 PowerPoint 프레젠테이션으로 저장/사용자 정의하는 방법에 대해 약간의 어려움이 있습니다. 이 질문은 이전에 다음 게시물에서 다른 방식으로 요청되었음을 알고 있습니다.
- PowerPoint에 분석 저장
- jsl을 사용하여 JMP에서 파워포인트로 그래프를 자동으로 저장하는 방법
- 머리를 고르세요...PowerPoint로 내보낼 스크립트
- JMP 12의 JMP 출력을 조직의 PowerPoint 템플릿에 저장하는 방법
- 저널의 PowerPoint 내보내기
위의 내용은 내가 찾은 가장 관련성이 높은 게시물 중 일부이지만 (5)가 가장 관련성이 높고 답변되지 않은 것 같습니다. 중복되는 비용으로 - 어떤 사람이 이 상황을 처리하는 가장 좋은 방법을 제공할 수 있습니까? 추가 설명을 위해 사용자 지정 보고서가 있다고 가정해 보겠습니다. 각 슬라이드에는 서로 다른 유형의 그래프와 텍스트가 있습니다. 대부분의 그림/그래프는 내 JSL 스크립트에서 생성됩니다. 그러나 JSL이 그래프를 각 슬라이드에 필요한 사용자 지정 형식으로 프레젠테이션으로 내보내도록 하는 가장 좋은 방법은 무엇입니까? 내가 생각할 수 있는 옵션은 다음과 같습니다.
- JMP 데이터 테이블을 Excel 시트로 저장한 다음
- Excel에서 플롯을 수동으로 생성하고 Powerpoint에 복사 붙여넣기(현재 수행 중) - 매우 비효율적임
- Excel 시트를 결합하고 그래프를 생성하고 Powerpoint에 삽입하는 VBA 매크로 작성 - VBA에 능숙하지 않음 - 이 경로를 추구하고 싶지 않음
- JSL에 VBA 코드 작성 - 위와 같은 이유로 다시 - 이 경로를 추구하고 싶지 않음
- 에 수치를 저장
- 보고서 - 그리고 ? 나는 JSL이 우리가 원하는 템플릿의 PowerPoint로 그림을 내보낼 수 있다는 것을 알고 있습니다. 그러나 이렇게 하면 모든 서식이 허용됩니다. 친절하게 리소스나 코드 스니펫을 공유하는 경우
- 저널 - 그리고 ? Power Point에 그림을 수동으로 복사하여 붙여넣어야 합니까?
JSL을 사용하여 이 작업을 수행하고 Excel을 사용하는 대신 JSL 내에서 전체 보고서를 유지하고 싶습니다. 친절하게 조언 부탁드립니다.
최상의
우다이
Re: JSL 결과를 PowerPoint로 자동화하고 사용자 지정하는 방법안녕하세요, Windows에 Python을 설치한 후 위의 코드를 실행했습니다. 그러나 이것은 아무것도 로드하지 않고 동일한 example.pptx를 엽니다. 디렉토리에 example.png가 생성되는 것을 볼 수 있습니다.
이 문제에 대한 디버깅을 제공할 수 있습니까?
Re: JSL 결과를 PowerPoint로 자동화하고 사용자 지정하는 방법이 게시물에 대한 알림을 받았고, 3년이 지났기 때문에 저도 답변을 업데이트해야겠다고 생각했습니다.이후 PPT를 만드는 여러 도구를 만들었고 1-4단계를 따릅니다.나에게 예외는 5단계이며 대신 pptx-ppt라는 Python 라이브러리를 사용합니다.다른 사람들이 몇 가지 다른 대안을 게시한 것 같습니다(아무도 VBA를 좋아하지 않는 것 같습니다).Python 사용의 좋은 점은 오픈 소스이며 JMP 14에는 새로운 Python 연결 후크가 있어 JSL에서 바로 Python을 실행할 수 있다는 것입니다.아래 예제 코드.
Names Default to Here(1);
//Created by msharp - 6/26/18
//Example script to generate a PPT presentation from a JSL report
//This takes advantage of python-pptx and the new Python hooks in JMP 14
//python-pptx installation:
//http://python-pptx.readthedocs.io/en/latest/user/install.html
//python-pptx quick start guide:
//http://python-pptx.readthedocs.io/en/latest/user/quickstart.html
dt = Open("$SAMPLE_DATA/Big Class.jmp");
biv = dt << Bivariate( Y( :height ), X( :weight ) );
//Save Report as Picture
dir = "C:\TEMP\";
file = "example.png";
biv << Save Picture(dir || file, "png");
//Clean Up
biv << Close Window();
close(dt, nosave);
//Create PPT w/ Python
Python Init();
plog = Python Execute({dir, file}, {img_path, left, top, height},
"\[
from pptx import Presentation
from pptx.util import Inches
img_path = dir + file
prs = Presentation()
blank_slide_layout = prs.slide_layouts[6]
slide = prs.slides.add_slide(blank_slide_layout)
left = top = Inches(1)
pic = slide.shapes.add_picture(img_path, left, top)
left = Inches(5)
height = Inches(5.5)
pic = slide.shapes.add_picture(img_path, left, top, height=height)
prs.save(dir + 'example.pptx')
]\"
);
Python Term();
//Open PPT
open(dir || "example.pptx");Re: JSL 결과를 PowerPoint로 자동화하고 사용자 지정하는 방법내가 올바르게 이해했다면 500개의 차트가 있고 이 모든 차트를 사전 정의된 템플릿의 ppt에 넣고 싶다고 가정해 보겠습니다. 이것을 달성하려면 코드를 수정하고 삽입 및 pic1.. 명령을 여러 번 반복해야 합니다. 그렇다면 매우 비효율적으로 보입니다. 하지만 틀릴 수도 있습니다.Re: JSL 결과를 PowerPoint로 자동화하고 사용자 지정하는 방법친애하는 우다이.
실제로 Excel을 통해 Powerpoint를 만드는 것은 데이터의 출처에 관계없이 괜찮은 방법입니다. 사실 웹에는 이를 수행하는 방법에 대한 수많은 설명서가 있습니다. 불행하게도, 이러한 매뉴얼은 실제로 필요한 것 이외의 다른 작업을 수행하기 때문에 대부분은 약간 부족합니다. 그런 다음 이 코드를 적용하는 것은 갈 길이 멀어질 것입니다. 이러한 문제를 방지하기 위해 라는 소프트웨어가 있습니다. SlideFab 한 줄의 VBA 없이 모든 Excel에서 전체 PowerPoint 프레젠테이션을 유연하게 만들 수 있습니다.
따라서 한 가지 접근 방식은 JMP 내보내기를 사용하고 이 원시 데이터를 공식을 다시 작성할 필요 없이 언제든지 업데이트할 수 있도록 이 데이터를 기반으로 하는 공식과 차트를 만드는 것입니다. 그런 다음 PowerPoint 프레젠테이션을 템플릿으로 사용하거나 소프트웨어가 처음부터 새로 만들도록 할 수 있습니다.그런 다음 소프트웨어를 통해 Excel의 어떤 데이터가 Powerpoint의 차트/표/도형으로 이동해야 하는지 정의할 수 있습니다. 그리고 어떤 종류의 반복이 있는 경우(예: 여러 시나리오에 대해 동일한 슬라이드 만들기) 이것도 정의할 수 있습니다. 기본 논리가 Excel 내의 수식을 통해 생성되는 경우 데이터 기반 제목, 주석 및 전체 줄거리를 생성하는 것도 가능합니다. 그런 다음 클릭 한 번으로 PowerPoint 프레젠테이션을 자동으로 만들 수 있습니다.
그래서 이것이 제가 추천하는 방법입니다 
건배
옌스
Re: JSL 결과를 PowerPoint로 자동화하고 사용자 지정하는 방법나는 이것이 정말 유용하다는 것을 알았고 cygwin bash 셸에서 올바른 종횡비를 가진 파워 포인트로 png를 자동로드하기 위해 실행하는 bash 래퍼 스크립트를 만들었습니다.
파일: png2ppt
#!/bin/bash
TCODE=`date +%s`
LIST=`ls -1rt *.png *.PNG`
if [[ $LIST != "" ]] ; then
# p3icli Syntax, Help: http://p3icli.sourceforge.net/p3icli_help.html
# http://p3icli.sourceforge.net/jsl_example.html
# http://p3icli.sourceforge.net/
WPATH=`cygpath -w $PWD`'\'
rm -f $TCODE.p3icli
# no cap1
echo 'open template C:\Programs\cygwin\usr\local\bin\portfolio.pot' >> $TCODE.p3icli
picX=674
picY=378 #388 #348
for F in $LIST ; do
if [[ -f $F ]] ; then
res=`pngcheck $F | cut -f2 -d'(' | cut -f1 -d','`
#res=`exiv2 $F | grep -F 'Image size :' | cut -f2 -d':'`
resX=`echo $res | cut -f1 -dx`
resY=`echo $res | cut -f2 -dx`
let aspect=$resX*10000/$resY
acutoff=17771 #9.33/5.25=1.77
if [[ $aspect -gt $acutoff ]] ; then
scale=`awk "BEGIN {printf \"%.6f\n\", $resX/$picX}"`
else
scale=`awk "BEGIN {printf \"%.6f\n\", $resY/$picY}"`
fi
X=`awk "BEGIN {printf \"%.0f\n\", $resX/$scale}"`
Y=`awk "BEGIN {printf \"%.0f\n\", $resY/$scale}"`
TITLE=`echo $F | rev | cut -c5-99 | rev | tr '_' ' '`
echo "title "\"$TITLE\" >> $TCODE.p3icli
echo "pic1 $WPATH$F" >> $TCODE.p3icli
echo "pic1 size $X,$Y" >> $TCODE.p3icli
echo "sleep 155" >> $TCODE.p3icli
echo "duplicate template # create and move to next slide" >> $TCODE.p3icli
fi
done
echo "save as presentation $WPATH$TCODE.ppt" >> $TCODE.p3icli
echo "sleep 500" >> $TCODE.p3icli
echo "kill ppt save" >> $TCODE.p3icli
cmd /C p3icli -X -l $WPATH$TCODE".log" $WPATH$TCODE".p3icli"
rm -f $TCODE.p3icli
fi
Re: JSL 결과를 PowerPoint로 자동화하고 사용자 지정하는 방법수년 전에 나의 멋진 남편은 파워포인트로 그림을 불러올 수 있는 p3icli 프로그램을 만들었습니다.p3icli라는 이름은 그것이 하는 일의 약어입니다. 피 빚지다 피 연고 피 그림 나 삽입 씨 명령 엘 이네 나 인터페이스.이 프로그램은 오픈 소스이며 아래의 첫 번째 링크에서 다운로드할 수 있습니다.
P3ICLI(PowerPoint 그림 삽입 명령줄 인터페이스) . 다운로드하기로 결정했다면 바이너리 배포판을 사용하는 것이 좋습니다.
다음 위치에 있는 특정 JSL 예제를 작성했습니다. http://p3icli.sourceforge.net/jsl_example.html .여기에는 다음이 포함됩니다.
- 최종 프레젠테이션의 레이아웃을 정의하는 3개의 다른 슬라이드가 포함된 특별히 제작된 PowerPoint 템플릿에 대한 링크
- 예제 JSL 스크립트
- JMP 샘플 데이터 Iris.jmp를 엽니다.
- 3가지 플랫폼에서 JMP 출력을 생성하고 저장합니다. 병렬 플롯 ; 산점도 행렬 (splom) 및 Oneway(4개 플롯, 각 반응 대 종)
- p3icli 명령을 작성하여 제목 페이지를 만들고 플롯을 PPTX 템플릿에 로드합니다.
- JSL 명령을 사용하여 p3icli 실행 프로그램 실행()
- JSL에서 생성되어 실행되는 텍스트 파일은 이 링크에 표시되며, 마지막으로
- 결과 PowerPoint 파일에 대한 링크.
예를 들어 p3icli 명령은 상당히 쉽습니다.
- 슬라이드 삽입 # 템플릿에서 파일 경로
- 제목 "텍스트 제공"
- 그림 # 그림_경로 {이 명령은 페이지에 그림을 배치합니다.}
- 캡 # "you supply the text" {이 명령은 템플릿에 정의된 텍스트 상자에 텍스트를 배치합니다.}
저와 많은 동료들이 이것을 사용하여 몇 초 만에 100개의 그래프를 로드했습니다.그림을 PPTX 모양으로 포함하면 모양이 그림 크기(픽셀)에 비례하지 않는 경우 왜곡되어 보일 수 있습니다. p3icli에는 크기를 조정하는 명령이 있지만 일반적으로 왜곡이 없도록 하기 위해 다음 두 가지 방법 중 하나를 사용합니다. 새 창을 만들고 창을 그래프로 저장하고 슬라이드당 하나의 모양이 있는 템플릿을 사용합니다.
템플릿을 만드는 방법에 대한 p3icli 설명서를 약간 읽어야 합니다. 여기에 힌트가 있습니다. PPTX 템플릿을 저장합니다. 열어 봐.각 도형에서 마우스 오른쪽 버튼을 클릭하고 도형 서식을 선택합니다.대체 텍스트를 보십시오.각 모양에는 pic1, pic2 등의 태그가 있습니다. 또한 텍스트를 배치하려는 각 모양, ALT TEXT는 cap1, cap2 등이 됩니다. 따라서 요점은 레이아웃을 정의한 다음 그래프를 저장하고 방법에 대한 명령을 작성하는 것입니다. 어떤 그래프가 어디로 가는지.로고 및 백업 문서가 있는 템플릿을 가질 수 있습니다.p3icli 명령 소스 형식 복사 멋진 로고와 색상 등을 유지합니다. 4개의 모양이 있는 템플릿이 있고 2개만 채운 경우 사용하지 않은 2개의 모양은 나타나지 않습니다.
이 접근 방식은 많은 유연성과 사용자 정의를 가능하게 하며 p3icli 사용자가 VBA보다 훨씬 간단한 명령으로 PPTX 프리젠테이션을 직접 로드하고 편집하는 시간을 수천 시간 절약했습니다.
그런 식으로 p3icli에 대한 GUI가 있으며 sourceforge.net 웹 사이트에서 찾을 수 있는 p3i라고 합니다.
Re: JSL 결과를 PowerPoint로 자동화하고 사용자 지정하는 방법@msharp :
이 권리를 이해하고 귀하의 접근 방식(1)을 사용하는 경우 - 아래 샘플 코드를 살펴보십시오.
NamesDefaultToHere(1);
dt1 = Open("$SAMPLE_DATA/Big Class.jmp");
g1 = Expr(dt1 << Bivariate( Y( :height ), X( :weight ) ));
dt2 = Open("$SAMPLE_DATA/Bands Data.jmp");
g2 = Expr(dt2 << Distribution( Nominal Distribution( Column( :Name( "Banding?" ) ) ) ));
win = NewWindow("Reports from Two Tables", HListBox(g1, g2));
- 예우 : 이안@JMP
보고서에 그래프를 보낼 때마다 새 보고서가 생성되고 이 모든 보고서의 참조를 사용하여 가로 모음 또는 세로 창 모음으로 결합해야 합니까?
Re: JSL 결과를 PowerPoint로 자동화하고 사용자 지정하는 방법스크립트를 PowerPoint로 자동화하는 작업을 많이 하지는 않았지만 여러 번 생각했습니다.내가 취할 단계는 다음과 같습니다.
1) 데이터를 생성하고 분석한 다음 사용자가 편집할 수 있는 보고서에 입력하는 JSL 스크립트를 작성합니다.(필터 이상값, 핀 레이블 등)
참고: 이것이 올바르게 구축된 경우 일반적으로 여기에서 멈추고 스냅샷을 찍고 PowerPoint를 만들지 않는 것은 사용자에게 맡깁니다.어쨌든 각자의 프레젠테이션을 좋아하는 사람은 다르며 다음 단계가 항상 제 시간의 ROI를 충족하는 것은 아닙니다.
2) 최종 사용자가 이해할 수 있는 탭 또는 기타 JSL 보고서 구조로 보고서를 구성하면 별도의 PowerPoint 페이지로 바뀝니다.
3) 사용자가 JMP에서 편집한 후 PowerPoint를 생성하는 버튼을 보고서에 추가합니다.
4) JSL 탭을 그림으로 내보냅니다.
5) 그런 다음 JSL이 그림을 로드하고 프레젠테이션을 생성하는 PowerPoint VBA 스크립트를 실행하도록 합니다.
.ppts를 생성할 수 있는 프로그램은 JSL뿐만 아니라 많이 있습니다.내 경험은 그들이 모두 부족하다는 것입니다.최상의 보고서를 만들기 위해 가장 많은 사용자 지정을 원하는 경우 PowerPoint용 VBA를 사용하는 것이 가장 좋습니다.스크립팅 언어이고 다른 스크립팅 언어와 마찬가지로 잘 작동합니다.PowerPoint용 VBA를 사용하여 멋진 통계 분석 추가 기능을 만들 수는 없지만(JSL에 맡기는 것이 가장 좋음) .ppt를 사용자 지정하시겠습니까?그래, 그렇게 잘 할거야.
Re: JSL 결과를 PowerPoint로 자동화하고 사용자 지정하는 방법엠샤프 , PMroz , 크레이지@JMP - 이견있는 사람 ?