2011-01-14 2 views
2

Visual Studio 2005의 .NET 2.0에 C#으로 작성된 코드를 계승했습니다. 백엔드 데이터베이스는 MS SQL 서버 2000입니다. Visual Studio 2010의 .NET 4.0에서 C#으로 변환하여 컴파일하고 빌드 할 수 있습니다. 문제는 이전 코드에서 Microsoft.Interop.Office.Word 라이브러리를 사용하여 편지 병합 및 매크로 포함 템플릿을 사용하여 서버 쪽 보고서를 생성 할 수 있도록했습니다. 우리는 이제 Visual Studio 2010이 서버 측 VBA 또는 C# MS Word 응용 프로그램 작업을 지원하지 않는다는 것을 이해합니다. 따라서 Open XML 2.0을 다운로드했습니다. 문서는 실망스럽지 않습니다. 그리고 웹에서 찾은 무수한 게시물은 문서를 처음부터 만들거나 .dotm 파일의 메일 병합 또는 실행 매크로에 대해서는 거의 언급하지 않으며 대부분 Open XML 1.0을 처리합니다.Open XML 2.0에서 microsoft .xml 파일을 열고 변수 데이터 추가

MS Word에서 .dotx 파일을 .xml 파일로 변환 한 다음 C# 및 Open XML API를 사용하여 .xml 파일을로드하고 데이터베이스에서 가져온 변수 데이터를 포함 할 수 있습니까? 보고서가 실행될 때마다 코드에서 동적으로 .xml 파일 (즉, 30 페이지 보고서)을 생성하는 것은 정말 이상한 일입니다. 내가 놓친 게 있니?

누군가가이 작업을 성공적으로 완료하고 C# 코드를 사용한 예가 실제로 도움이된다면. 감사합니다. Emily

+0

MS 워드 응용 프로그램 작업을 지원하지 않는다고 생각하는 이유는 무엇입니까? –

+0

不懂 : Visual Basic 2005의 .NET 2.0에서 C#으로 작성된 코드 톤 –

+0

SQL 2008 R2에서 .NET 4.0을 사용하여 VS2010으로 마이그레이션하려는 문제가 있습니다. Microsoft는 VBA 또는 C#을 통한 서버 측 Word 관리를 더 이상 지원하지 않는다고 말합니다. Bangalore는 Javascript로 모든 것을 다시 쓰거나 openXLM을 사용하라고했습니다. openXML에 대한 문서는 끔찍합니다. –

답변

2

정말 간단한 찾기/바꾸기 방법을 시도해 볼 수 있습니다.

  1. .DOCX 파일로 템플릿을 생성하고
  2. 변경 모든 그는 일반적으로 문서화하는 int 표시하지 않을 자리를 찾아 분석하는 쉬운 필드가 메일을 병합하지 않습니다 서버에 저장 XML 인코딩이 필요합니다. 예 : {{FirstName}}.
  3. 은 비어있는 새 .DOCX (우편)는
  4. , 당신은 소스 파일을 읽을 때
  5. 파일 .DOCX 템플릿 내부에서 각 파일을 읽기 위해 검색으로 토큰을 대체 생성 할 각 문서 파일 만들기 나는 오픈 XML 및 사용에 대한 이해에 작동 위를 방해하는 개는이있을 경우 자신이 내가 모르는 WordML와 함께 일하지만, 기반하지 않은

클라이언트에 적절한

  • 보내기 파일 SpreadsheetML의 경우 작동해야합니다.

    OpenXML을 사용하는 것이 Office Interop보다 복잡합니다. Office Interop API는 Office UI에 훨씬 가깝기 때문에 친숙하고 사용하기가 더 쉽습니다. Open XML API는 핵심 XML에 대한 매우 가벼운 래퍼이며 XML을 직접 처리하는 것과 거의 똑같습니다. 그것은 똑같은 자동 친숙 함이 없이는 더 복잡합니다.

    그러나 OpenXML은 사무실 간 interop보다이 훨씬 더 입니다. Office interop의 서버 번호는 이며은 안전하지 않습니다. 이것을 당신의 오래된 똑딱 거리는 시간 폭탄을 없애기에 좋은시기라고 생각하십시오.

  • 관련 문제