2009-10-06 6 views
2

Excel 2007 템플릿 통합 문서를 만들고이를 프로그래밍 방식으로 데이터 집합으로 채우는 방법을 알아야합니다. 서식 파일 통합 문서에는 최종 결과에 나타나는 모든 서식 및 상용구 콘텐츠가 포함되어야하지만 데이터 행은 포함되지 않습니다.Excel 2007 통합 문서에 프로그래밍 방식으로 XML 데이터 삽입

데이터 삽입 프로세스는 서식 파일에있는 스타일, 조건부 열, 계산, 차트 등의 지식 없이도 통합 문서에 데이터를 동적으로 삽입 할 수 있어야합니다.

나는 새로운 OpenXml 문서 형식 SDK 2.0 (C# 사용)을 실험 해본 결과 Excel 통합 문서를 읽고 조작 할 때 많은 유연성을 제공한다는 것을 알게되었습니다. 그러나 더 깊이 파고 들수록 Excel의 내부 동작을 자세히 파악해야한다는 것을 알게되었습니다. 예를 들어 테이블, 워크 시트 및 계산 체인이 모두 패키지 내에서 별도로 관리된다는 사실은 필자의 이해 한계를 테스트하는 것입니다. 내 "솔루션"이 다른 데이터 시나리오에서 예기치 않은 동작을 나타낼 수 있다고 우려합니다.

그래서, 더 강력한 방법이 있는지 궁금 ... Excel에서 XML 데이터를 포함하는 외부 데이터 소스에 바인딩 할 수있는 점을 감안

내 데이터 세트가로 저장 될 수 있다는 것이 가능하다 Xml 파일 및 통합 문서 패키지 파일에 삽입? 즉, "외부"데이터 원본이 통합 문서 패키지 안에있을 수 있습니까? 그렇다면 통합 문서를 열 때 자동으로 삽입 된 데이터에 바인딩하는 자리 표시 자 테이블을 템플릿에 정의하는 방법은 무엇입니까?

의견을 보내 주셔서 감사합니다.

답변

0

엑셀에 내장 된 '외부 데이터 가져 오기'로이 작업을 시도해 보셨습니까? 리본의 데이터 탭에서 다른 소스에서 드롭 다운하면 Excel에서 XML 파일의 정보를 검색 할 수 있습니다. 서식을 설정하기 위해 일부 실험이 필요할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 네, 워크 시트를 XML 데이터 원본에 바인딩하는 유일한 방법은 설명대로라고 생각합니다. 안타깝게도 Excel에서 처리하는 방식은 그리 우아하지 않습니다. 데이터를 가져 와서 셀에 배치하기 때문에 프로그래밍 방식으로 데이터를 유지하면 셀을 반복하는 것을 의미합니다. 나는 주입 된 데이터가 원래의 스키마를 유지하고 단순히 셀에서 렌더링되는 방법을 정말로 기대하고있었습니다. 그러나 저는 실망했기 때문에 OpenXml SDK에 추상화 레이어를 추가하여 클래스 라이브러리를 작성하기 시작했습니다. –

0

xml을 읽고 시트를 채울 사용자 지정 단추 (리본 막대에?)를 만들 수 있습니다.

VSTO은 귀하의 친구입니다. :)

1

이것은 다소 다른 접근 방식을 필요로하지만 Apache POI (http://poi.apache.org/)가 Excel 통합 문서를 생성하는 데 매우 유용하다는 사실을 발견했습니다. 아직 지원되지 않는 Excel 기능을 찾지 못했습니다. 또한 Excel에 대한 깊은 지식이 필요하지 않으며 멋진 예제 라이브러리가 제공됩니다.

도 XML 기반 데이터를 Excel로 변환해야했습니다. 훌륭한 XML 처리 라이브러리를 활용하기 위해 Scala에서 POI를 사용하는 코드를 작성했습니다.

+0

오랜 시간이 지난 후이 질문이 부활 한 것을보고 놀랍습니다. 그러나 귀하의 의견에 감사드립니다. 나는 아파치 POI를 알지 못했지만 매우 흥미로웠다. 사실, 내가 그 존재를 알았 더라면 ExtremeML (http://www.extrememl.com/)을 개발하려는 동기가 전혀 없었을 수도 있지만 흥미로운 여행이었고 다양성 해결책이 존재합니다. –

관련 문제