C# .hwp json 데이터 차트 만들기

안녕하세요
지금 C#에서 JSON 데이터를 활용해 .hwp에 출력하는 프로그램을 개발하고있습니다.
그런데 JSON데이터를 활용해 막대 차트를 그리는 것을 해보려고 하는데 정보가 많이 없어서 헤매고 있습니다.
혹시 어떻게 해야하는지 아시는 분 계실까요??
JSON 데이터를 가지고 표만드는 것은 했습니다. 이 표의 데이터를 활용해도 좋고 JSON에서 값을 가져와서 그려도 상관 없습니다. (같은 데이터입니다)
이 차트는 예시입니다 이런식으로 만들고 싶습니다.

안녕하세요.

차트에 사용 될 데이터를 JSON에서 직접 가져와 ParameterSet에 바로 설정하고 차트 생성하는 방법은 제공되지 않구요.

대신 표를 생성하셨다고 하니, 생성된 표의 데이터를 이용하면 차트 생성이 가능합니다.

먼저 차트를 생성할 표의 셀을 선택하신 이후 아래 코드를 호출하면 됩니다.

HWPCONTROLLib.DHwpAction chartAction = (HWPCONTROLLib.DHwpAction)axHwpCtrl1.CreateAction(“InsertChart”);
HWPCONTROLLib.DHwpParameterSet chartSet = (HWPCONTROLLib.DHwpParameterSet)chartAction.CreateSet();
chartAction.GetDefault(chartSet);
chartSet.SetItem(“ChartGroup”, 1);
chartSet.SetItem(“ChartIndex”, 0);
chartSet.SetItem(“ChartDataDialogDisable”, 1); // 차트 생성 대화상자 Disable 유무(set하지 않으면 대화상자가 뜹니다.)
chartAction.Execute(chartSet);

생성할 차트의 종류는 ChartGroup, ChartIndex로 지정할 수 있는데요.
확인하는 방법은 한/글을 실행 시킨 후, 입력탭- 툴박스의 차트를 선택하시면 팝업으로 생성할 차트의 예시가 뜨는데요

가로막대형 그룹은 0, 세로막대형 그룹은 1, 그리고 해당 그룹 내 Index에 따라 맞춰서 SetItem에 넣어주시면 됩니다.

해당 Index들은 0부터 시작합니다.

더 궁금한 점 있으시면 언제든지 문의주세요.

안녕하세요 표의 데이터를 활용해 그리려고 하니 잘 안되서 그런데
혹시 데이터를 하드 코딩으로 값을 입력하여 그냥 막대 그래프만 그리려면 어떻게 해야할까요?

네… 해당 방법으로는 차트를 생성할 방법이 없습니다.

어떤 부분이 잘 안되는지 알 수 있을까요?

image

말씀해주신 코드를 그대로 실행했을때 제가 입력하지 않은 값들이 출력되서 그런데 혹시 제가 그린 표의 값을 받아오려고 하면 “InsertChart” 이부분에 제가 표의 변수명을 입력해주어야할까요?

위 표는 제가 따로 설정 한 것 없는 처음보는 데이터들입니다
이 표의 데이터를 수정하면 수정한대로 그래프가 그려집니다

image
사진이 한개만 업로드 되어 댓글 하나더 올립니다

위에 보여주신 스크린샷 내용대로라면

chartSet.SetItem(“ChartDataDialogDisable”, 1);

옵션도 설정이 되지 않은 듯 하고 데이터를 생성할 표의 셀도 선택되지 않아서 차트생성 시 기본 데이터로 생성 된 듯 합니다.

표의 상태가 아래 그림과 같아야 합니다.
image

이후 제가 첨부해드린 코드대로라면 차트가 생성이 되어야 하는데

표 생성 이후 데이터 삽입, 차트 생성까지 소스코드를 첨부해주시면 더 자세히 안내 드릴 수 있을 것 같습니다.

  • 한글 버전도 같이 적어주시면 좋아요

감사합니다 우선 제 스스로 한 번 해보고 다시 여쭤보겠씁니다!

안녕하세요
말씀해주신대로 진행하니 정상동작하는 것을 확인 할 수 있었습니다
혹시 생성된 차트를 코드로 크기 조절 또한 가능 할까요?? 크기를 키우려고합니다.

안녕하세요.

차트 크기 조절하는 방법이…예~~전 한글에서 사용하던 차트를 신규 차트엔진으로 교체하면서 한글 컨트롤쪽에 제대로 반영 안된 부분이 있어서 차트 속성 수정하는 부분이 명확하게 제공되고 있지 않습니다…

추후 패치로 반영하도록 하겠습니다.

아래 코드는 사실 내부적으로 사용하는 코드인데 알려 드리도록 하겠습니다.

        DHwpAction dialogAction = (HWPCONTROLLib.DHwpAction)axHwpCtrl1.CreateAction("ShapeObjDialog");
        DHwpParameterSet dialogSet = (HWPCONTROLLib.DHwpParameterSet)dialogAction.CreateSet();
        dialogAction.GetDefault(dialogSet);
     

        DHwpParameterArray lockProp = (HWPCONTROLLib.DHwpParameterArray)dialogSet.CreateItemArray("OptLockProperties", 2);
        lockProp.SetItem(0, 16397); // 여기는
        lockProp.SetItem(1, 16395); // 수정하지말아주세요

        dialogSet.SetItem("Width", 30000); // 크기는 point단위입니다.
        dialogSet.SetItem("Height",10000);
        dialogAction.Execute(dialogSet);

더 궁금한 점 있으시면 언제든지 문의주세요.

1개의 좋아요

해결 완료 되었습니다 감사합니다!!
좋은하루되세요:)

안녕하세요
한가지 더 문의드립니다!
차트 생성하는 코드를 실행하면 사진과 같이 차트 데이터 편집하는 창이 출력되는데
이 부분이 나오지 않게 하는 방법이 있을까요?
제가 생각했을 땐 아래 코드가 관련된 부분인 것 같은데 값을 수정해도 동일하게 출력되네요!

chartSet.SetItem("ChartDataDialogDisable", 1); // 차트 생성 대화상자 Disable 유무(set하지 않으면 대화상자가 뜹니다.)

image

안녕하세요.

chartSet.SetItem(“ChartDataDialogDisable”, 1); // 차트 생성 대화상자 Disable 유무(set하지 않으면 대화상자가 뜹니다.)

해당부분 코드가 맞는데… 대화상자가 뜨는부분은 확인하기가 어렵네요 ㅠ

아 저 차트 데이터 편집이 안 나오게 하는 것은 힘들다는 말씀이실까요?

혹시 사용하시는 한글 버전이 어떻게 될까요?

현재 사용하는 한글버전은 한글2020 입니다!

안녕하세요!

확인해보니 2020버전에는 차트 생성시 대화상자가 무조건 뜨게 되어 있네요 ㅠ

chartSet.SetItem(“ChartDataDialogDisable”, 1); 옵션은 현재 개발중인 버전에만 추가되어있는 코드입니다…

정확히 안내드리지 못한 점 죄송합니다.