Word 에${}가 있 는 내용 을 자바 로 대체 하 는 방법 을 알려 줍 니 다.

개술
1.필요 한 것 이 있 기 때문에 워드 문서 의 특정한 데 이 터 를 가 변 적 으로 설정 해 야 합 니 다.따라서 변 수 를 태그(예:${변수 이름})로 바 꾸 고 백 엔 드 를 통 해 이 변 수 를 부여 합 니 다.다시 생 성 된 Word 는 백 엔 드 에 설 정 된 내용 에 따라 달라 질 수 있 습 니 다.
2.교체 방법:워드 템 플 릿 문 서 를 준비 합 니 다.예 를 들 어:워드mode.doc(또는 wordmode.docx)파일,가 변 적 인 내용 을 태그${변수 이름}으로 바 꿉 니 다.(그림 1 이름:${name})

3.읽 을 수 있 는 템 플 릿 으로 전환:변수 탭 을 모두 설정 한 후 이 워드 문 서 를 xml 형식의 문서(그림 2)로 저장 합 니 다.저 장 된 파일 이름:wordmode.xml(즉 사용자 정보.xml).접미사 이름 을 수정 하여 템 플 릿 을 생 성 합 니 다(탭 을 바 꾸 는 데 사용):wordmode.ftl

4、word_mode.ftl 파일 에서 생 성 된 태그 이름 은 스타일 에 의 해 분 리 될 수 있 습 니 다.그림 3(처리 전),그림 4(처리 후)와 같이 수 동 으로 처리 해 야 합 니 다.
 
5.생 성 된 ftl 파일 에 대해 Notepad++를 사용 하여 xml 포맷 을 하면 EL 표현 식 라벨 이 분 리 된 문 제 를 처리 하 는 데 유리 합 니 다.그림 이 있 으 면 포맷 후 정상적으로 표시 되 지 않 습 니 다.그림 의 BASE 64 야드 맨 뒤에 탭 과 분리 되 어 있 는 지,빈 칸 을 제거 할 수 있 는 지 확인 할 수 있 습 니 다.
아직 안 된다 면 포맷 된 그림 BASE 64 의 내용 을 포맷 하기 전의 BASE 64 내용 으로 바 꾸 는 것 은 문제 가 없 을 것 입 니 다.
 
2.List 포함 내용 처리
2.1 개술
그림 에서 보 듯 이 워드 문서 처리 가 변 적 인 내용 을 보 여 주 는 사용자 정보 가 여러 개 있 습 니 다.

2.2 처리 방식
첫 번 째 줄 은 필드 설명 이 가 변 적 이지 않 기 때문에 두 번 째 줄 은 가 변 적 인 매개 변수 입 니 다.List 의 많 고 적 음 에 따라 변 경 됩 니 다.wordmode.ftl 에<\#list>탭 을 추가 합 니 다.그림 5(시작),그림 6(끝)참조.
 
3.절차 처리
3.1 pom.xml 도입

<!--   word   -->
<dependency>
	<groupId>org.freemarker</groupId>
	<artifactId>freemarker</artifactId>
	<version>2.3.23</version>
</dependency>
3.2 실체 bean:UserBean

public class UserBean {
	private String username;
	private String userAge;
	private String userHigh;
	private String userSex;
	
	public UserBean(String username, String userAge, String userHigh, String userSex) {
		this.username = username;
		this.userAge = userAge;
		this.userHigh = userHigh;
		this.userSex = userSex;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getUserAge() {
		return userAge;
	}
	public void setUserAge(String userAge) {
		this.userAge = userAge;
	}
	public String getUserHigh() {
		return userHigh;
	}
	public void setUserHigh(String userHigh) {
		this.userHigh = userHigh;
	}
	public String getUserSex() {
		return userSex;
	}
	public void setUserSex(String userSex) {
		this.userSex = userSex;
	}
}
3.3 교체 도구 종류:WordUtils

package com.jtr.hutool.main;
 
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
import com.jtr.hutool.bean.UserBean;
 
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import freemarker.template.Version;
 
public class WordUtils {
	/**           */
	private static final String CHARSET = "UTF-8";
	/**         */
	private static final String VERSION = "2.3.0";
	
	public static void main(String[] args) {
		downloadWord("C:\\Users\\Think\\Desktop\\temp\\", "word_mode.ftl");
	}
	
	public static void downloadWord(String wordModePath, String wordModeFile) {
		try {
			// 1.       
			Map<String, Object> wordData = initWordMap();
			
			// 2.       
			//     
			Configuration configuration = new Configuration(new Version(VERSION));
			//     Word     
			configuration.setDirectoryForTemplateLoading(new File(wordModePath));
			//  UTF-8     ,      
			Template template = configuration.getTemplate(wordModeFile, CHARSET);
			
			// 3.          
			File outFile = new File(wordModePath + wordData.get("username") + "_    .doc");
			Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), CHARSET), 10240);
			//   
			template.process(wordData, writer);
			writer.flush();
			writer.close();
			System.out.println("         ");
			
		} catch (TemplateException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
 
	private static Map<String, Object> initWordMap() {
		List<UserBean> userList = new ArrayList<UserBean>();
		userList.add(new UserBean("  1", "10", "171", " "));
		userList.add(new UserBean("  2", "20", "172", " "));
		userList.add(new UserBean("  3", "30", "173", " "));
		userList.add(new UserBean("  4", "40", "174", " "));
		userList.add(new UserBean("  3", "50", "175", " "));
		
		Map<String, Object> wordData = new HashMap<String, Object>();
		wordData.put("name", "  1");
		wordData.put("age", "60");
		wordData.put("high", "177");
		wordData.put("userList", userList);
		
		return wordData;
	}

워드 에${}가 있 는 내용 을 자바 로 교체 하 는 방법 을 알려 드 리 는 이 글 은 여기까지 입 니 다.더 많은 자바 교체 워드 에${}가 있 는 내용 은 이전 글 을 검색 하거나 아래 글 을 계속 찾 아 보 세 요.앞으로 도 많은 응원 부탁드립니다!

좋은 웹페이지 즐겨찾기