2017-11-27 25 views
1

OpenXML SDK를 사용하여 C#에서 Word 문서를 생성하고 있습니다. 차트의 경우 Excel의 데이터 편집 기능을 지원하지 않습니다.OpenXML SDK는 차트의 새 문서에서 Excel의 데이터 편집 기능을 지원하지 않습니다.

차트를 생성하기 위해 여기에 몇 가지 샘플 코드가 있습니다. 차트 영역을 마우스 오른쪽 단추로 클릭 한 다음 데이터 편집을 선택하면 아무 일도 일어나지 않습니다. https://code.msdn.microsoft.com/office/How-to-create-Chart-into-a7d424f6

enter image description here

은 예상 된 동작 데이터를 Excel을 열어 가고 있습니다. enter image description here

나는 또한 또 다른 인기있는 오픈 소스 라이브러리 Xceed DOCX https://github.com/xceedsoftware/docx

같은 문제를 시도도있다. Syncfusion은 라이센스 비용으로이 기능을 지원합니다.

OpenXML SDK 또는 DocX 또는 다른 오픈 소스 라이브러리를 사용하여이 기능을 어떻게 구현할 수 있습니까?

편집 됨 11 월 30 일 - 서식 파일 (이미 차트가 있고 Excel 편집 기능을 지원함)에서 문서를 만든 다음이를 복사/생성하고 차트 값을 업데이트하는 방법을 알고 있습니다. OpenXMLSDK PowerTool/OpenXMLSDK 생산성 도구.

예 : 나는 syncfusion 구성 요소와 같은 새로운 문서에 차트를 만들기위한 찾고 http://ericwhite.com/blog/update-cached-data-and-embedded-xlsx-for-charts-in-docx-pptx/

OpenXmlPowerTools.ChartUpdater.UpdateChart(). Syncfusion은 어떤 템플릿도 기대하지 않습니다.

도움을 주시면 감사하겠습니다. 감사합니다.

+0

귀하의 질문 제목이 "의 OpenXML SDK는 차트에서 Excel 기능에서 데이터 편집을 지원하지 않습니다"라는 다음 단계로 생성 된 파일입니다, 그러나 그것은 않습니다. 그리고 내 대답은 이것을 어떻게하는지 단계별로 보여줍니다. 내가 대답 한 후에, 당신은 당신의 질문을 바꾸었다. 내 솔루션은 변경하기 전에 원래 질문에 대한 답변을 제공합니다. 소프트웨어 권장 사항에서 자세한 질문을 할 수 있습니다. https://softwarerecs.meta.stackexchange.com/questions/8/is-it-alright-to-ask-for-programming-tools – Taterhead

+0

안녕하세요, Taterhead, 동의했습니다. 또한 제목을 변경했습니다. 내 시나리오에서는 템플릿 접근법을 사용하지 않을 수도 있습니다. 사람들이 내가 제공 한 링크에서 예제 코드를 사용한다고 가정합니다. 새로운 문서 접근 방식에 대한 답변을 기다리고 있습니다. 7 일 후에도 답을 얻지 못하면 대답으로 받아 들일 것입니다. –

+0

안녕하세요 Taterhead, 내가 언급 한 예제 코드가 Excel 편집 기능을 허용하지 않는 이유는 무엇입니까? 어떤 아이디어? 한 가지 방법은 OpenXml SDK의 docx 파일을 압축 해제하고 비교하여 수동으로 리본을 사용하여 차트를 삽입하는 것입니다. 어떤 도움을 주시면 감사하겠습니다. –

답변

1

예, 무료 OpenXML SDK 및 OpenXML Productivity Tool을 사용하여 가능합니다. 다음 단계를 따르십시오.

  1. 개발 기계에서 installing both the OpenXML SDK and the OpenXML Productivity Tool으로 시작하십시오.
  2. Word를 사용하여 원하는 최종 요구 사항이있는 원형 차트가 포함 된 Word 문서를 생성하십시오.
  3. 생산성 도구를 사용하여 2 단계에서 만든 doc라는 단어를 열고 상단에있는 Reflect Code 버튼을 클릭하십시오. 문서를 생성하는 데 필요한 C# 코드는 오른쪽 창에 표시됩니다.
  4. Visual Studio를 사용하여 WordChartGenerator이라는 간단한 C# 콘솔 응용 프로그램 프로젝트를 만듭니다. 이 프로젝트의 경우 패키지 관리자 콘솔에 Install-Package DocumentFormat.OpenXML을 입력하십시오. 이렇게하면 프로젝트에 OpenXML을 사용하는 데 필요한 DLL이 필요합니다. GeneratedClass.cs의 상단에있는 네임 스페이스 라인에 namespace WordChartGenerator
  5. 이동을 다시 할 GeneratedClass.cs를 호출하고 3 단계

  6. 변경에서 생성 된 코드를 사용하여 전체 내용을 대체 :
  7. 는이 프로젝트에 새로운 클래스 파일을 만듭니다 Program.cs 파일과 main 내부에 GeneratedClass 클래스의 인스턴스를 인스턴스화하고 원하는 전체 파일 경로 이름에 대한 경로로 CreatePackage를 호출합니다.다음과 같은 뭔가 :

    class Program 
    { 
        static void Main(string[] args) 
        { 
         var wordGenerator = new GeneratedClass(); 
        wordGenerator.CreatePackage("C:\\Users\\jeff\\Documents\\WordWithChart.docx"); 
        } 
    } 
    
  8. 프로그램을 실행하고 사용자가 지정한 디렉토리에 파일을 생성합니다.

아래 스크린 샷은

enter image description here