Exwog는 템플릿별로 Excel에서 Word로 보고서 생성기입니다. 자동 문서 생성 사용자 데이터에서 템플릿 문서 생성

이전에 시작한 Word에서 양식 작업에 대한 주제를 계속 진행합니다. 이전 기사에서는 "고급 사용자"관점에서만 양식을 살펴 보았습니다. 수동 채우기에 편리한 문서를 만들었습니다. 오늘 저는이 작업의 확장을 제안하고 콘텐츠 제어 메커니즘을 사용하여 문서를 생성하려고합니다.

즉각적인 작업을 시작하기 전에 콘텐츠 컨트롤에 대한 데이터가 Word 문서에 저장되는 방식에 대해 몇 마디 말하고 싶습니다. 조항).

자연스러운 질문-무엇입니까 itemProps1.xml 및 유사한 구성 요소? 이러한 구성 요소는 데이터 소스에 대한 설명을 저장합니다. 대부분의 경우 개발자가 계획 한대로 문서에 포함 된 xml-ek 외에도 다른 사용자를 사용해야했지만 지금까지는이 방법 만 구현되었습니다.

우리에게 유용한 것 itemPropsX.xml? 그들이 xml-schemas를 나열한다는 사실 (그들의 targetNamespace) 부모에서 사용되는 itemX.xml... 즉, 하나 이상의 사용자 지정 xml을 문서에 연결 한 경우 필요한 XML을 찾으려면 다음 단계를 거쳐야합니다. itemPropsX.xml 구성 요소 및 찾기 원하는 계획, 따라서 필요한 itemX.xml.

이제 한 가지 더. 구성 요소 간의 관계를 수동으로 분석하지 않고 기본 패키징 API 만 사용하여 필요한 요소를 검색합니다! 대신 Open XML SDK를 사용합니다 (해당 어셈블리는 NuGet을 통해 사용할 수 있음). 물론 이전에는이 \u200b\u200bAPI에 대해 한 마디도하지 않았지만 작업을 위해서는 최소한의 작업이 필요하며 모든 코드는 매우 투명합니다.

글쎄, 기본 소개가 완료되었습니다. 예제로 시작할 수 있습니다.

전통적으로 우리가 기사에서 그린 것과 동일한 "회의 보고서"를 가져 가자. 문서 템플릿의 모양은 다음과 같습니다.

이와 같이 문서 필드가 바인딩 된 XML은

< meetingNotes xmlns ="urn:MeetingNotes" subject ="" date ="" secretary ="" > < participants > < participant name ="" /> < decisions > < decision problem ="" solution ="" responsible ="" controlDate ="" />

1 단계. 데이터 모델 생성

사실, 우리의 임무는 단순히 문서를 생성하는 것이 아니라 개발자와 사용자 모두가 사용할 수있는 편리한 도구를 만드는 것입니다 (적어도 초안 버전에서는).

따라서 모델을 C # 클래스의 구조로 선언합니다.

Public class MeetingNotes (public MeetingNotes () (참가자 \u003d 새 목록 (); 결정 \u003d 새 목록 (); ) 공개 문자열 제목 (가져 오기; 설정;) 공개 날짜 / 시간 날짜 (가져 오기; 설정;) 공개 문자열 비서 (가져 오기; 설정;) 공개 목록 참가자 (get; set;) 공개 목록 결정 (get; set;)) public class Decision (public string Problem (get; set;) public string Solution (get; set;) public string Responsible (get; set;) public DateTime ControlDate (get; set;)) public class Participant (공용 문자열 이름 (get; set;))

일반적으로 XML 직렬화를 제어하기 위해 속성이 추가된다는 점을 제외하면 특별한 것은 없습니다 (모델의 이름과 필수 XML이 약간 다르기 때문).

2 단계. 위 모델을 XML로 직렬화

원칙적으로 작업은 사소합니다. "우리가 가장 좋아하는 XmlSerializer를 가져 가서 이동"이라고하는 것입니다. 그러나

불행히도 현재 Office 버전에는 다음과 같은 버그가 있습니다. 기본 네임 스페이스 (Word가 표시하기 위해 요소를 가져와야하는 네임 스페이스)를 선언하고 다른 네임 스페이스를 선언하면 반복되는 콘텐츠 컨트롤이 잘못 표시되기 시작합니다 (템플릿 자체에 표시된만큼의 요소 만 표시됨-즉 반복 섹션이 작동하지 않음). ).

그. 이 xml은 다음과 같이 작동합니다.

< test xmlns ="urn:Test" attr1 ="1" attr2 ="2" > < repeatedTag attr ="1" /> < repeatedTag attr ="2" /> < repeatedTag attr ="3" />

그리고 이것도 :

< test xmlns ="urn:Test" attr1 ="1" attr2 ="2" xmlns:t ="urn:TTT" > < repeatedTag attr ="1" /> < repeatedTag attr ="2" /> < repeatedTag attr ="3" />

그러나 이것은 사라졌습니다.

< test xmlns:t ="urn:TTT" xmlns ="urn:Test" attr1 ="1" attr2 ="2" > < repeatedTag attr ="1" /> < repeatedTag attr ="2" /> < repeatedTag attr ="3" />

connect의 Microsoft 지원에 버그를 제출하려고했지만 어떤 이유로 Office를 통해 버그를 제출할 수있는 권한이 없습니다. 그리고 MSDN 포럼에 대한 토론도 도움이되지 않았습니다.

일반적으로 필요한 해결 방법입니다. XML을 수작업으로 구성했다면 문제가 없을 것입니다. 모든 것을 직접 수행했을 것입니다. 그러나이 경우에는 이러한 네임 스페이스를 사용하지 않더라도 기본적으로 여러 네임 스페이스를 출력 XML에 추가하는 표준 XmlSerializer를 사용하고 싶습니다.

XmlSerializer에서 자체 네임 스페이스의 출력을 완전히 억제합니다. 사실,이 접근 방식은 그가 정말로 필요하지 않은 경우에만 작동합니다 (그렇지 않으면 여전히 추가되고 우리 것보다 먼저 추가됩니다).

실제로 전체 코드 (변수가 meetingNotes 이전에 채워진 MeetingNotes 개체 포함) :

var serializer \u003d new XmlSerializer (typeof (MeetingNotes));
var serializedDataStream \u003d 새로운 MemoryStream ();

var namespaces \u003d new XmlSerializerNamespaces ();
namespaces.Add ( "", "");

serializer.Serialize (serializedDataStream, meetingNotes, 네임 스페이스);
serializedDataStream.Seek (0, SeekOrigin.Begin);

단계 3. 결과 XML을 Word 문서에 입력합니다.

여기서 우리는 다음을 수행합니다.

  • 템플릿을 복사하고 사본을 엽니 다.
  • 필요한 사용자 지정 xml을 찾습니다 (네임 스페이스로 검색). "Urn : MeetingNotes")
  • 컴포넌트의 내용을 XML로 대체

File.Copy (templateName, resultDocumentName, true); using (var document \u003d WordprocessingDocument.Open (resultDocumentName, true)) (var xmlpart \u003d document.MainDocumentPart.CustomXmlParts .Single (xmlPart \u003d\u003e xmlPart.CustomXmlPropertiesPart.DataStoreItem.SchemaReferences.OfType) () .Any (sr \u003d\u003e sr.Uri.Value \u003d\u003d "(! LANG : urn : MeetingNotes"!}

우리는 모두 텍스트를 어떻게 든 다룹니다. 예를 들어 서식을 가지고 놀기 위해 모든 작업에 대해 크거나 많지 않은 텍스트를 생성해야하는 경우가 있지만 텍스트가 없어서 직접 작성하기에는 너무 게으르다. 무엇을해야합니까? 대답은 간단합니다. Word에 내장 된 임의 텍스트 생성기를 사용하십시오!

편집기에서 마이크로 소프트 워드 특수 명령을 사용하여 매우 빠르고 쉽게 텍스트를 생성 할 수 있습니다. Word 2007을 기니피그로 사용하겠습니다. 이러한 명령은 모든 버전의 Word에서 작동합니다. 텍스트를 생성하는 세 가지 방법에 대해 설명하겠습니다.

방법 1. rand () 사용

rand () 함수는 현지화 된 텍스트 샘플을 각각 3 개의 문장으로 구성된 3 개의 단락으로 삽입합니다. Word를 열고 곧 텍스트가 나타날 곳에 커서를 놓고 다음 명령을 입력하십시오.

enter를 누르십시오. rand 함수 자체가 사라지고 대신 텍스트의 3 개 단락이 나타납니다.

하지만 그게 다가 아닙니다. 많은 텍스트가 필요한 경우 다음과 같이 추가 인수와 함께 rand 함수를 사용할 수 있습니다.

\u003d 랜드 (x, y)

어디 " 엑스"단락 수를 의미하고" 와이"-각 문단의 문장 수. 예를 들면 \u003d 랜드 (20.5) 각각 5 개의 구문이있는 20 개의 단락을 삽입합니다. ㅏ \u003d 랜드 (7) 각각 3 개의 문장으로 구성된 7 개의 문단을 삽입합니다.

방법 2. lorem () 사용

좋은 오래된 Lorem Ipsum을 샘플로 삽입하려면 lorem () 함수를 사용하십시오. 다음 명령을 입력하고 Enter를 누르십시오.

그리고 우리는 모든 세브도-라틴 텍스트를 얻습니다.

lorem () 함수는 또한 단락 및 문장 수의 형태로 rand ()와 같은 추가 인수를 기꺼이 받아들입니다. 인수가 없으면 함수는 기본적으로 각각 3 개의 문장이있는 3 개의 단락을 삽입합니다.

방법 3. rand.old () 함수

사용법은 이전 명령과 유사합니다.

\u003d rand.old ()

enter를 누르십시오.

rand.old () 함수는 2003 년까지 레거시 오피스 호환성을 위해 유지됩니다. 적용 방법은 앞의 두 가지 방법과 동일합니다. 텍스트 만 "이 부드러운 프렌치 롤을 좀 더 먹고 차를 좀 드세요."라는 동일한 문구로 구성됩니다. 글꼴로 작업해야했던 모든 사람은 때때로이 문구를 알고 있습니다.

처음 두 메서드에서와 같이 인수를 전달할 수 있습니다.

그게 다야, 텍스트가 생성되었습니다. 이제이 부드러운 프렌치 롤을 더 많이 먹고 차를 마실 수 있습니다. :)

위의 기능을 사용하여 텍스트를 삽입 했습니까?

, 열의 성 칼럼의 직업 .

2. 워드 문서 (.doc 또는 .docx)를 만듭니다.


(ㅏ), (비)(씨).

(ㅏ), (비)(씨) (ㅏ) -이름, (비) -성, (씨) -직업.

설정 프로그램들.

3. 파일 및 폴더 경로 선택


고르다

4. 필요한 데이터의 시트 및 행 설정


Excel 파일 데이터 시트

Excel 파일 데이터 행 Excel 파일 데이터 시트

1 .

데이터가있는 Excel 파일의 모든 시트 및 / 또는 줄이 문서 형성에 참여하도록하려면 글자가있는 오른쪽 버튼을 클릭합니다. 번호 (비문은 다음으로 변경됩니다. 모두).

5. 새 단어 파일의 이름에 대한 템플릿 설정


새 단어 파일의 이름에 대한 템플릿을 설정합니다.

새 단어 파일 이름 템플릿 프로그램에 의해 생성 된 새 문서 (워드 파일)의 이름에 대한 템플릿입니다. 여기서 이름 템플릿에는 중괄호로 묶인 Excel 파일의 열 이름이 포함됩니다. (ㅏ)(비)... 새 문서를 생성 할 때 프로그램은 모든 (ㅏ)(비) 엑셀 파일의 해당 셀 값-새 문서 (단어 파일)의 이름이됩니다.

탭에서 프레임 기호를 설정할 수 있습니다. 설정 프로그램들.

6. "생성"을 클릭하십시오.


버튼을 클릭 일으키다 진행률이 화면에 표시됩니다. 문서 (워드 파일)의 수는 엑셀 파일의 많은 행이 형성에 포함되는 것과 똑같이 생성됩니다.

7. 모든 것


모든 문서 (단어 파일)가 생성되고에 지정된 폴더에 있습니다. 새 단어 파일을 저장할 폴더... 모두:)

Exwog- excel에서 Word로 템플릿 별 보고서 생성기

Excel 파일 데이터를 기반으로 한 템플릿 (Word 파일) 별 무료 Word 파일 생성

Mac OS, Windows 및 Linux에서 작동

새로 생성 된 단어 파일의 이름을 지정할 수 있습니다.

원하는 데이터의 시트와 라인을 정의 할 수 있습니다.

Excel 열 이름에 포함 문자를 설정할 수 있습니다.

사용하기 쉬운

데이터를 Excel 형식 (.xls 및 .xlsx)으로 저장하고 몇 번의 클릭으로 Word 파일 (.doc 및 .docx)을 생성합니다. :)


어떻게 작동합니까?

엑셀 파일 살펴보기


이 예에서 Excel 파일에는 고객 정보가 포함되어 있습니다. 각 줄은 특정 클라이언트에 해당합니다. 이름은 열에 있습니다. , 열의 성 칼럼의 직업 .

보려면 클릭하세요

Word 문서 (.doc 또는 .docx) 만들기


보려면 클릭하세요

새 문서 (word 파일) 생성을위한 "템플릿"(word 파일)을 만듭니다. 여기에서 "템플릿"텍스트에는 중괄호로 묶인 Excel 파일의 열 이름이 포함됩니다. (ㅏ), (비)(씨).

프로그램은 모든 것을 대체하는 "템플릿"에 따라 새 문서를 생성합니다. (ㅏ), (비)(씨) Excel 파일의 해당 셀 값 : (ㅏ) -이름, (비) -성, (씨) -직업.

또한 탭에서 자신 만의 프레임 기호를 설정할 수 있습니다. 설정 프로그램들.

파일 및 폴더의 경로 선택


파일 및 폴더의 경로 선택 ( 고르다). 프로그램에서 다음 경로를 설정합니다.

데이터가있는 Excel 파일 (* .xls, * .xlsx) -엑셀 데이터 파일 (고객 정보)의 경로입니다.

Word 템플릿 파일 (* .doc, * .docx) -이것은 "템플릿"(이전 단계에서 만든 단어 파일)의 경로입니다.

새 단어 파일을 저장할 폴더 -프로그램이 새로 생성 된 문서를 저장할 폴더의 경로입니다.

보려면 클릭하세요

원하는 데이터의 시트 및 행 설정


보려면 클릭하세요

문서를 생성 할 데이터 (고객 정보)로 Excel 파일의 시트 및 줄 수를 설정합니다.

Excel 파일 데이터 시트 -새 문서 작성에 참여할 Excel 파일의 시트 수

Excel 파일 데이터 행 -시트의 줄 번호 (에 지정된 시트 Excel 파일 데이터 시트) 새 문서의 형성에 참여할 Excel 파일의. 지정된 각 행의 데이터를 기반으로 별도의 문서 (워드 파일)가 생성됩니다.

프로그램의 시트 및 줄 번호는 다음으로 시작합니다. 1 .

한 번 올림피아드의 결과를 요약 한 후 참가자들이 통과 한 (또는 통과하지 못한) 과목에 대한 결과를 편지로 보내야했을 때 소녀가 앉아 있고 그녀의 손으로 시험 결과, 학생 이름 및 기타 정보를 편지 서식 파일에 입력했음을 알았습니다. 그녀 앞에 이름과 성적이 적힌 Excel 시트가 여러 개 놓여 있습니다. 복사-붙여 넣기, Ctrl + C-Ctrl + V, 전체 이름을 명목에서 속사 케이스로 번역하므로 작업은 이미 세 데이터 시트 중 첫 번째의 절반으로 완료되었습니다. 그녀가 데이터를 복사하고 결과를 확인하는 데 얼마나 오래 걸렸을 것이라고 생각하십니까? 오랫동안 생각하면 실수가 많을 것입니다. 하지만 그녀는 여전히 우편 봉투에 서명해야했습니다. 시간을내어 미안하다고 느꼈고 몇 분 후에 간단한 방법으로이 프로세스를 자동화 할 수있는 방법을 보여주었습니다. 짧은 여행 끝에 그녀의 작업은 20 분 만에 완료되었습니다.

이 강의에서는 최소한의 시간에 문서 (편지, 초대장)를 빠르게 만드는 방법을 보여 드리겠습니다. 에 다른 버전 언어에서이 설명 된 프로세스는 다르게 호출됩니다. 따라서 러시아어에서는 "Merge"이고 영어에서는 "Merge"입니다.

희망 "행복의 편지"에서 연금 기금, 세금 통지는 동일한 방식으로 생성됩니다. :)

도구

문서를 작성하려면 OpenOffice Writer가 필요합니다. 그 안에 우리는 편지 템플릿을 만들 것입니다. OpenOffice Calc도 필요합니다. 여기에서 우리는 예를 들어 파티에 초대하려는 사람들의 이름과 주소로 데이터베이스를 만들 것입니다. OpenOffice 패키지의 프로그램 대신 MS Word 및 Excel을 쉽게 사용할 수 있습니다. 데이터베이스는 쉽게 MS Access에있을 수 있습니다. 이제 시작하겠습니다.

데이터베이스 생성

데이터베이스는 MS Excel의 테이블에 지나지 않습니다. OpenOffice Calc여기서 데이터는 열에 있고 첫 번째 행은 열 이름을 지정하는 데 사용됩니다. 예를 들어 "full name", "city", "index", "address"열을 만들어 보겠습니다. 데이터를 입력하고 파일을 디스크에 저장하겠습니다.



예를 들어 다른 소스를 데이터베이스로 사용할 수 있습니다. 주소록 Outlook 또는 MS Access 데이터베이스.

편지 템플릿 만들기

편지 서식 파일을 만들면 상황이 조금 더 복잡해집니다. 테이블 (우리 데이터베이스)의 데이터가있는 그대로 템플릿에 삽입되므로 그에 따라 편지를 작성해야합니다. 귀하의 전체 이름이 데이터베이스의 지정 사례에 포함 된 경우이 필드를 "친애하는,<ФИО>! " 그리고 "To :<ФИО>". 후자의 경우 전체 이름이 다소 어색해 보입니다.

편지 템플릿을 작성할 때는 실제 사람에게 편지를 쓰는 것으로 시작하는 것이 좋습니다. 스스로 할 수 있습니다. 그런 다음 데이터베이스에서 가져올 데이터를 강조 표시하고 해당 필드로 바꿉니다. 선택한 텍스트를 필드로 바꾸기 전에 데이터베이스의 필드가 시작되어야하는 문자 (소문자 또는 대문자)에주의를 기울이는 것이 좋습니다. 물론 필드로 템플릿을 즉시 작성할 수 있지만 대소 문자 불일치와 같은 실수를 눈치 채지 못할 수도 있습니다.



위의 템플릿에서 이미 속사 케이스에 전체 이름이 필요하고 이름과 후원 만 포함 된 필드가 필요하다는 것이 분명합니다. 첫 번째 필드를 사용하여 "To"를 "Recipient"로 바꿀 수 있습니다. 그러면 지명 케이스의 전체 이름이 우리에게 완벽하게 적합합니다. 두 번째 필드를 사용하면 모든 것이 다소 복잡해지며 데이터베이스에 하나 이상의 열을 만들고 적절한 데이터로 채워야합니다. 다음 강의 중 하나에서이 작업을 자동으로 수행하는 방법을 설명하지만 지금은 이미 그러한 필드가 있다고 가정합니다.

필드를 삽입하고 템플릿을 데이터베이스에 바인딩하려면 다음 순서의 단계를 수행해야합니다. OpenOffice Writer에서 데이터베이스 선택



"정의"를 클릭하십시오.



그런 다음 연결된 데이터베이스의 필드를 원하는 위치에 삽입합니다. 이렇게하려면 Ctrl + F2를 누르거나 삽입 메뉴에서 필드 및 기타 항목을 선택합니다. 열리는 창에서 "데이터베이스"탭을 선택하고 필드 유형에서 "메일 병합 필드"를 선택한 다음 데이터베이스에서 적절한 필드를 선택하고 "삽입"을 클릭합니다. 이 창에서 실제 데이터베이스를 선택할 수도 있습니다.



한 필드를 삽입 한 후 현재 창을 닫지 않고 다음 필드로 바꿀 텍스트를 선택하고 필드를 선택한 다음 "삽입"을 다시 누릅니다. 그리고 각 필드에 대해.

MS Word의 경우 상황은 다소 유사하며 아마도 더 편리 할 것입니다. MS Excel에서 표를 만든 후 MS Word를 시작하고 메일 링 탭으로 이동합니다. 이 탭에서 "병합 시작", "문서 초안 작성 및 필드 삽입"및 "마침"의 세 가지 필수 단계를 볼 수 있습니다. 중간 단계 "결과보기"도 있지만 선택 사항입니다.

따라서 작업은 문서 선택으로 시작됩니다. 이들은 편지, 스티커, 일반 Word 문서 일 수 있습니다. 이 프로세스의 모든 단계를 안내하는 병합 마법사를 즉시 시작할 수 있습니다. 다음 단계는받는 사람, 즉 데이터베이스를 선택하는 것입니다. 여기에서 미리 만들어진 데이터베이스 (예 : 이전 단계에서 만든 MS Excel 테이블)를 선택하거나 새 목록... 목록을 선택하면 "병합 필드 삽입", "수신자 목록 변경"등 버튼이 활성화됩니다. 해당 버튼과 함께 열리는 "수신자 목록 변경"대화 상자를 통해 전체 목록에서 병합에 필요한 레코드 만 선택할 수 있습니다.







필드를 삽입 할 때 "병합 필드 선택"버튼을 클릭하여 모든 필드를 회색으로 강조 표시하는 것이 편리합니다. 그렇지 않으면 이러한 필드가 많으면 텍스트에서 손실 될 수 있습니다.

이제 템플릿이 준비되었습니다.

편지 생성

마지막 단계는 문자 생성입니다. OpenOffice의 "도구"메뉴에서 "메일 병합 마법사 ..."를 선택하고 제안 된 모든 단계를 수행하여 템플릿을 데이터베이스와 병합합니다.





대화 상자에서 제안 된 8 점 중 일부를 수행 할 필요가 없음을 알 수 있습니다. 따라서 우리는 이미 문서를 생성했으며 편집 할 필요가 없으며 이미 주소 블록을 삽입했습니다. 그러나 순서대로 시작합시다.

먼저 현재 문서를 기반으로 편지를 작성하고 있음을 선택하고 창 하단의 "다음"을 클릭합니다. 두 번째 요점은이 편지를받을 것인지 이메일을받을 것인지 선택하는 것입니다. 문자를 파일에 저장하려면 첫 번째 문자를 선택하십시오. "다음"을 클릭하십시오. 세 번째로 주소 블록을 생성하라는 제안을 받았지만 직접 생성 했으므로 모든 상자를 선택 취소하고 다음 단계로 이동합니다. 여기에 항소를 삽입하라는 제안이 있지만 이미 등록되어 있으므로 "다음"을 누릅니다. 여섯 번째 요점은 문서를 편집하고 데이터베이스에서 삽입 된 필드가있는 문서를보고 필요한 경우 일부 필드를 제외하는 것입니다.



7 단계에서는 템플릿을 데이터베이스에 연결 한 결과 생성 된 각 파일을 편집하는 것이 좋습니다. 마지막으로, 마지막 8 단계에서 수신 된 문서로 수행 할 작업을 선택할 수 있습니다. 저장, 인쇄 또는 이메일로 보낼 수 있습니다. 이 경우 모든 문서를 하나의 파일에 저장하거나 각 문서를 개별적으로 저장할 수 있습니다.

MS Word에서는 찾기 및 병합 버튼을 클릭하여 병합 프로세스를 종료합니다.



드롭 다운 메뉴에서 모든 문자를 인쇄하여 전자 메일을 통해 보낼 수 있다는 것은 분명하지만 모든 문자를 파일에 저장할 수 있는지는 분명하지 않습니다. 저장하려면 첫 번째 항목 인 "개별 문서 변경"을 선택해야합니다. 이것은 열립니다 새 문서, 각각의 새 편지는 새 페이지, 그리고 여기에이 파일을 저장할 수 있습니다.

결론

따라서이 단원에서는 병합 도구를 사용하여 템플릿에서 문서를 만드는 방법을 배웠습니다. 일련의 작업을 간단히 적어 보겠습니다.

  1. 필드를 채우는 데 데이터가 사용되는 테이블 프로세서에 데이터베이스를 만들어야합니다.
  2. 편지 서식 파일을 만들어야합니다.
  3. 결과를 병합하고 저장하십시오.

"문서 작성 자동화"시리즈의 이전 기사에서 응용 프로그램의 사용자 인터페이스를 만들고 입력 데이터의 유효성 검사를 구성하고 VBA 코드를 사용하지 않고 단어로 숫자를 얻는 방법에 대해 설명했습니다. 이 마지막 기사에서는 Excel 통합 문서에서 필요한 모든 값을 Word 문서로 전송하는 마법에 대해 이야기합니다. 결과가 무엇인지 보여 드리겠습니다.

메커니즘 설명

먼저 데이터가 Word 문서로 전송되는 방법을 일반적인 용어로 설명하겠습니다. 먼저 템플릿이 필요합니다. word 문서모든 마크 업, 표 및 텍스트의 모든 부분이 변경되지 않은 상태로 유지됩니다. 이 템플릿에서 Excel 통합 문서의 값이 대체 될 위치를 결정해야합니다. 가장 편리한 방법은 책갈피를 사용하는 것입니다. 그 후에 Word 템플릿과 일치하는 방식으로 Excel 데이터를 구성하고 마지막으로 VBA에 전송 절차 자체를 작성해야합니다.

자, 먼저 먼저.

Word 문서 템플릿 만들기

여기서는 모든 것이 매우 간단합니다. 일반 문서를 만들고 텍스트를 입력하고 서식을 지정하며 일반적으로 필요한 양식을 얻기 위해 노력합니다. Excel에서 값을 대체해야하는 곳에서는 북마크를 만들어야합니다. 이것은 다음과 같이 수행됩니다.

따라서 모든 책갈피를 만들어야합니다. 즉, Excel의 데이터가 삽입 될 모든 위치를 표시해야합니다. 결과 파일은 "파일"-\u003e "다른 이름으로 저장 ..."메뉴 항목을 사용하여 "MS Word Template"로 저장해야합니다.

Excel 데이터 준비

편의를 위해 Word 문서로 전송해야하는 모든 데이터를 책갈피-책갈피라는 별도의 워크 시트에 저장하기로 결정했습니다. 이 시트에는 두 개의 열이 있습니다. 첫 번째 열에는 책갈피 이름 (Word 문서에서 이름이 정확히 지정됨)이 포함되고 두 번째 열에는 래핑 될 해당 값이 포함됩니다.

이러한 값 중 일부는 데이터 입력 시트에서 직접 가져오고 일부는 지원 시트에있는 보조 테이블에서 가져옵니다. 이 기사에서는 명확하지 않은 경우 필요한 값을 계산하는 공식을 분석하지 않을 것입니다. 의견에 질문하십시오.

이 단계에서는 책갈피의 모든 이름을 올바르게 표시하는 것이 중요합니다. 데이터 전송의 정확성은 이것에 달려 있습니다.

전송 절차

그러나 이것은 가장 흥미로운 것입니다. 데이터 전송 코드를 실행하기위한 두 가지 옵션이 있습니다.

  • 코드는 Excel 통합 문서에서 실행되고 데이터는 한 번에 한 값씩 \u200b\u200bWord로 전달되고 즉시 문서에 배치됩니다.
  • 코드는 별도의 Word 문서에서 실행되며 모든 데이터는 Excel에서 한 번에 전송됩니다.

특히 많은 수의 책갈피를 사용하는 경우 실행 속도의 관점에서 두 번째 옵션은 훨씬 더 매력적으로 보이지만 더 복잡한 작업이 필요합니다. 이것이 제가 사용한 것입니다.

수행 할 작업은 다음과 같습니다.

  • 매크로 사용 Word 문서 서식 파일을 만듭니다. 이 템플릿에는 실행 가능한 VBA 코드가 포함됩니다.
  • VBA로 작성된 프로그램을 생성 된 템플릿에 넣어야합니다. 이렇게하려면 템플릿을 편집 할 때 Alt + F11 키 조합을 누르고 열리는 편집기 창에 입력합니다. 비주얼 베이직 프로그램 코드.
  • Excel 통합 문서에서 새로 만든 Word 템플릿에서 채우기 루틴을 호출하는 코드를 작성합니다..

이 기사에서는 절차의 텍스트를 제공하지 않겠습니다. 예제와 함께 아카이브의 Template 폴더에있는 FillDocument.dotm 파일에서 쉽게 볼 수 있습니다.

이 모든 것을 어떻게 사용하여 특정 문제를 해결할 수 있습니까?

말로는 모든 것이 매우 간단 해 보이지만 실제로는 어떻게됩니까? 기성품 옵션을 사용하는 것이 좋습니다. Excel 통합 문서에서 예제와 함께 아카이브를 다운로드하고 Alt + F11을 눌러 Visual Basic 편집기를 열고 프로그램에 대한 모든 주석을 읽습니다. 필요에 맞게 프로그램을 변경하려면 여러 상수의 값을 변경하기 만하면됩니다. 상수는 프로그램의 맨 처음에 배치됩니다. 전체 프로그램 텍스트를 프로젝트에 자유롭게 복사 할 수 있습니다.

아카이브 구조

이 기사에 첨부 된 아카이브에는 여러 파일이 포함되어 있습니다.

주 파일은 "확인 작성"이라는 Excel 통합 문서입니다. 이 통합 문서에는 4 개의 워크 시트가 있으며,이 중 2 개만 표시됩니다. "입력"-데이터 입력 시트 및 "데이터베이스"-입력 된 모든 문서의 아카이브.

Templates 폴더에는 Word 문서 템플릿이 포함되어 있습니다. 하나는 북마크 채우기 프로그램이 포함 된 템플릿이고 다른 하나는 작성할 양식입니다. 프로그램에서 템플릿을 변경하지 않고 사용할 수 있지만 작성 양식은 물론 필요에 따라 다시 작성해야합니다.

"자신을 위해"예제를 재 작업하는 방법은 무엇입니까?

  1. 완료 할 Word 문서 템플릿을 준비합니다. 필요한 모든 북마크를 만들고 "MS Word 템플릿"으로 저장합니다.
  2. 이 문서에 첨부 된 보관 파일의 FillDocument.dotm 파일을 준비된 서식 파일이있는 폴더로 복사합니다. 이 파일은 템플릿 책갈피를 채우는 역할을하므로 파일에서 아무것도 변경할 필요가 없습니다.
  3. 데이터 입력을 위해 Excel 통합 문서를 준비합니다. 그녀가 "고급"을 가질 것인지 결정하는 것은 당신에게 달려 있습니다. 사용자 인터페이스 다양한 교활한 계산을 수행합니다. 가장 중요한 것은 Word 템플릿의 책갈피 이름과 대체해야하는 값 사이의 대응 테이블이있는 워크 시트가 포함되어 있다는 것입니다.
  4. 샘플 파일의 VBA 프로그램 코드를 준비된 통합 문서에 삽입합니다. 프로젝트에 따라 모든 상수를 바꿉니다.
  5. 작업의 정확성을 테스트하십시오.
  6. 적극적으로 사용하십시오!
이 공유