문제

MS Word 형식으로 보고서 내보내기를 생성하려는 프로젝트가 있습니다.보고서에는 이미지/그래프, 표, 텍스트가 포함됩니다.이를 수행하는 가장 좋은 방법은 무엇입니까?타사 도구?당신의 경험은 무엇입니까?

도움이 되었습니까?

해결책

대답은 응용 프로그램이 서버에서 실행되는지 아니면 클라이언트 컴퓨터에서 실행되는지에 따라 약간씩 달라집니다.서버에서 실행하는 경우 알려진 문제가 있으므로 XML 기반 오피스 생성 형식 중 하나를 사용하고 싶을 것입니다. 서버에서 Office 자동화 사용.

그러나 클라이언트 컴퓨터에서 작업하는 경우 다음 중 하나를 선택할 수 있습니다. 사무 자동화를 사용하여 또는 Microsoft Office 2000 이상에서 기본적으로 또는 서비스 팩을 통해 지원되는 Office Open XML 형식(아래 링크 참조)을 사용합니다.하지만 한 가지 단점은 표시하려는 일부 종류의 그래프나 이미지를 삽입하지 못할 수도 있다는 것입니다.

일을 진행하는 가장 좋은 방법은 개발에 얼마나 많은 시간을 투자해야 하는지에 달려 있습니다.Office 자동화를 선택하면 Google을 통해 찾을 수 있고 배우기 매우 간단한 좋은 튜토리얼이 꽤 많이 있습니다.그러나 Open Office XML 형식은 상당히 새롭기 때문에 학습 곡선이 조금 더 높아질 수 있습니다.

Office Open XML 정보

다른 팁

DocX 무료 라이브러리 적극적으로 개발되었으며 사용이 매우 쉽고 직관적인 DocX 문서 생성을 위한 것입니다.CodePlex가 죽어가고 있기 때문에 프로젝트는 다음으로 옮겨졌습니다. 깃허브.

나는 지난 주 정도에 속도를 높이는 데 시간을 보냈습니다. 오피스 오픈 XML.우리는 Microsoft Word에 보고하려는 설문조사 데이터를 저장하는 데이터베이스 애플리케이션을 가지고 있습니다.실제로 C#에서는 처음부터 Word 2007(docx) 파일을 만들 수 있습니다.Open XML SDK 버전 2에는 Word 문서를 완전히 다시 만들기 위한 C# 코드를 실제로 제공하는 Document Reflector라는 멋진 응용 프로그램이 포함되어 있습니다.코드의 일부 또는 전체를 사용할 수 있으며 즉시 변경하려는 비트를 대체할 수 있습니다.SDK에 포함된 도움말 파일에도 좋은 코드 샘플이 있습니다.

서버에 Office Interop이나 다른 Office 소프트웨어가 필요하지 않습니다. 새로운 형식은 100% XML입니다.

대안으로 .RTF 사용을 고려해 보셨나요?

텍스트뿐만 아니라 이미지와 표 삽입도 지원하고, 기본적으로 Microsoft Word를 사용하여 열립니다. 기능 세트는 Word 문서처럼 보이고 느껴지며 열리는 기능에 대해 더 제한적이지만(고급 서식 제외) 멀지 않습니다.

최종 사용자는 아마 눈치 채지 못할 것입니다.

나는 발견했다 단어를 추측하다 모든 사람이 Office Open XML/*.docx 형식 파일을 열 수 있는 것은 아니며 Word 상호 운용성 및 Word 자동화에 버그가 있을 수 있으므로 최고가 되기 위해 노력합니다.Aspose Words는 Word 97 이상의 대부분의 문서 파일 형식을 지원합니다.

유료 구성 요소이지만 큰 지원을 제공합니다.이미 제안된 다른 대안은 RTF입니다.

.NET, 특히 C# 또는 VB.NET 내에서 Office 자동화를 사용하여 Word 문서를 생성하려면:

  1. 추가 Microsoft.Office.Interop.Word 프로젝트에 대한 어셈블리 참조입니다.경로는 \Office용 Visual Studio 도구\PIA\Office11\Microsoft.Office.Interop.Word.dll.

  2. 여기에서 찾을 수있는 Microsoft 코드 예제를 따르십시오. http://support.microsoft.com/kb/316384/en-us.

Schmidty, 웹 서버에서 Word 문서를 생성하려면 각각에 대한 라이센스가 필요합니다 고객 (웹 서버뿐만 아니라).처음에 이 섹션을 참조하세요. 링크 Rob이 게시한 내용:

"기술적인 문제 외에도 라이센스 문제도 고려해야 합니다.현재 라이선스 지침에서는 클라이언트 자체에 라이선스가 부여된 Office 복사본이 없는 한 Office 응용 프로그램을 서버에서 사용하여 클라이언트 요청을 처리하는 것을 금지하고 있습니다.서버 측 자동화를 사용하여 라이선스가 없는 워크스테이션에 Office 기능을 제공하는 것은 최종 사용자 사용권 계약(EULA)의 적용을 받지 않습니다."

라이선스 요구 사항을 충족하는 경우 COM Interop을 사용해야 할 것 같습니다. 구체적으로 말하면 Office XP 기본 Interop 어셈블리.

VSTO(Office용 Visual Studio 도구)를 확인하세요.Word 템플릿을 만들고 XML 데이터 아일랜드를 삽입한 다음 클라이언트에 보내는 것은 매우 간단합니다.사용자가 Word에서 문서를 열면 Word는 xml을 읽고 이를 WordML로 변환하여 렌더링합니다.VSTO 라이브러리의 ServerDocument 클래스를 살펴보는 것이 좋습니다.내 경험에 따르면 추가 라이센스가 필요하지 않습니다.

나는 doc 및 docx 형식을 지원하는 Syncfusion Backoffice DocIO를 사용하여 큰 성공을 거두었습니다.

이전 릴리스에서는 단어의 모든 기능을 지원하지 않았지만 귀하의 목록에 따르면 메일 병합 접근 방식으로 표와 텍스트를 사용하여 테스트한 결과 정상적으로 작동했습니다.

하지만 이미지 가져오기에 대해서는 잘 모르겠습니다.광고 페이지에서 http://www.syncfusion.com/products/DocIO/Backoffice/features/default.aspx 그것은 말한다

Blockquote Essential Docio는 스칼라와 벡터 이미지를 문서에 거의 모든 형식으로 삽입하는 것을 지원합니다.비트맵, gif, png 및 tiff는 지원되는 일반적인 이미지 유형 중 일부입니다.

따라서 고려해 볼 가치가 있습니다.

다른 사람들이 언급했듯이 RTF 문서를 작성할 수 있습니다. 다음과 같은 .net에 대한 좋은 RTF 라이브러리가 있습니다. http://www.codeproject.com/KB/string/nrtftree.aspx

나는 이 문제에 직면했고 이를 위해 작은 라이브러리를 만들었습니다.여러 프로젝트에서 사용된 후 게시하기로 결정했습니다.그것은 무료이고 매우 간단하지만 작업에 도움이 될 것이라고 확신합니다.Office Open XML 라이브러리를 호출합니다. http://invoke.co.nz/products/docx.aspx.

나는 다음을 썼다. Open XML WordprocessingML 문서 생성에 대한 블로그 게시물 시리즈.내 접근 방식은 콘텐츠 컨트롤이 포함된 템플릿 문서를 만들고, 각 콘텐츠 컨트롤에서 문서 생성 프로세스를 구동하는 데이터가 포함된 XML 문서에서 콘텐츠를 검색하는 방법을 정의하는 XPath 식을 작성하는 것입니다.코드는 무료이며 다음에 따라 라이센스가 부여됩니다. Microsoft 상호 라이선스(Ms-RL).동일한 블로그 게시물 시리즈에서는 콘텐츠 컨트롤에서 C# 코드를 작성하는 접근 방식도 살펴보았습니다.그런 다음 문서 생성 프로세스에서는 템플릿 문서를 처리하고 원하는 문서를 생성하는 C# 프로그램을 생성합니다.이 접근 방식의 한 가지 장점은 다음을 사용할 수 있다는 것입니다. 어느 데이터 소스는 문서 생성 프로세스의 데이터 소스입니다.해당 코드는 Microsoft 상호 라이선스에 따라 사용이 허가됩니다.

나는 현재 정확히 이 일을 하고 있습니다.

문서가 그다지 크지 않고 이미지 등이 포함되어 있지 않으면 #MergeFields#이 포함된 RTF로 저장하고 간단히 콘텐츠로 대체하여 결과를 사용자에게 RTF로 보냅니다.

이미지와 동적으로 삽입된 이미지를 포함한 더 큰 문서의 경우 초기 Word 문서를 #MergeFields#가 포함된 단일 웹 페이지 *.mht 파일로 다시 저장합니다.그런 다음 위와 동일하게 수행합니다.이를 사용하면 기본 Html 테이블 태그로 DataTable을 쉽게 렌더링하고 #MergeFields# 중 하나를 전체 테이블로 바꿀 수 있습니다.

이미지는 서버에 저장될 수 있으며 URL도 문서에 포함될 수 있습니다.

흥미롭게도 새로운 Office 2007 파일 형식은 실제로 zip 파일입니다. 확장명을 .zip으로 바꾸면 해당 파일을 열어 내용을 볼 수 있습니다.즉, 간단한 C# zip 라이브러리를 사용하여 이미지와 같은 콘텐츠를 안팎으로 전환할 수 있어야 합니다.

@데일 레이건:이는 Office 2003 XML 형식에서는 작동하지만 이식성이 없습니다(예: .doc 또는 .docx 파일처럼).

이를 읽고 쓰려면 Word 개체 라이브러리 ActiveX 컨트롤을 사용해야 합니다.

http://www.codeproject.com/KB/aspnet/wordapplication.aspx

@대니 스머프:실제로 이 문서에서는 Rob이 답변한 Office Open XML 형식이 무엇인지 설명합니다.나는 지금 내가 게시하는 링크에 더 많은 관심을 기울여 쓸모없는 링크가 없는지 확인하겠습니다.실제로 당시 명칭이었던 WordML을 검색해봤습니다.

저는 Office Open XML 형식이 가장 좋은 방법이라고 생각합니다.

리브레 오피스 API를 통한 헤드리스 상호작용도 지원합니다.안타깝게도 현재 이 기능에 대한 정보가 아직 많지 않습니다.:(

Word 문서 생성기를 사용할 수도 있습니다.클라이언트 측 또는 서버 측 배포에 사용할 수 있습니다.프로젝트 설명에서:

WordDocumentGenerator는 Visual Studio 2010 및 Open XML 2.0 SDK를 사용하여 템플릿에서 Word 문서를 생성하는 유틸리티입니다.WordDocumentGenerator는 최소 코드 변경을 사용하여 사전 정의 된 템플릿을 기반으로 비교할 수있는 단어 문서를 생성 할 수 있도록 도와줍니다.컨텐츠 컨트롤은 문서 생성을위한 자리 표시 자로 사용됩니다.워드 2007과 워드 2010을 지원합니다.

그것을 잡아: http://worddocgenerator.codeplex.com/

SDK 다운로드: http://www.microsoft.com/en-us/download/details.aspx?id=5124

또 다른 대안은 바람이 불어오는 쪽의 독겐 (면책조항 - 저는 창립자입니다).Windward를 사용하면 이미지, 표, 그래프, 게이지 등 원하는 모든 것을 포함하여 Word에서 템플릿을 디자인할 수 있습니다.XML 또는 SQL 데이터 소스의 데이터가 삽입되는 태그를 설정할 수 있습니다(forEach 루프, 가져오기 등과 같은 기능 포함).그런 다음 DOCX, PDF, HTML 등으로 보고서를 생성합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top