최근 프로젝트의 경우 정보를 단어로 내보내야합니다. 온라인에서 많은 솔루션을 찾았으며 이제 요즘 요약을 공유 할 것입니다.
현재 Java에서 단어를 내보낼 수있는 약 6 개의 솔루션이 있습니다.
1. Jacob은 Java-Com Bridge의 약어로 Java와 Microsoft의 COM 구성 요소 사이의 다리를 건설합니다. Jacob과 함께 제공되는 DLL Dynamic Link 라이브러리를 사용하면 Java 플랫폼의 COM 프로그램 호출은 JNI를 통해 실현됩니다. DLL Dynamic Link 라이브러리 생성에는 Windows 플랫폼의 지원이 필요합니다. 이 솔루션은 Windows 플랫폼에서만 구현 될 수 있으며 이는 제한입니다.
2. Apache POI에는 Microsoft Ole 2 Compound Document 형식을 기반으로 다양한 형식 파일을 작동 할 수있는 일련의 API가 포함되어 있습니다. 이 API를 통해 Excel, Word 및 기타 파일을 Java로 읽고 쓸 수 있습니다. Excel 처리는 매우 강력하며 단어는 읽기로 제한됩니다. 현재 일부 간단한 파일 작업 만 구현할 수 있으며 스타일을 설정할 수 없습니다.
3. Java2word는 Java 프로그램에서 MS Office Word 문서를 호출하는 구성 요소 (클래스 라이브러리)입니다. 이 구성 요소는 Java 프로그램을위한 간단한 인터페이스 세트를 제공하여 Word 문서를 작동시키기 위해 서비스를 호출합니다. 이러한 서비스에는 문서 열기, 새 문서 만들기, 텍스트 찾기, 텍스트 교체, 텍스트 삽입, 그림 삽입, 책 마크 삽입, 사진 삽입, 그림 삽입, 테이블 삽입 등이 포함됩니다. 테이블 데이터를 읽기 위해 데이터를 채우십시오. 버전 1.1 향상된 기능 : 텍스트 스타일을 지정하고 테이블 스타일을 지정합니다. 이러한 방식으로 Word 문서를 동적으로 입력 할 수 있습니다. 좋은 해결책입니다.
4. ITEXT는 PDF 문서를 생성하는 데 사용되는 Java 클래스 라이브러리 인 유명한 오픈 소스 사이트 Sourceforge 프로젝트입니다. ITEXT를 통해 PDF 또는 RTF 문서를 생성 할뿐만 아니라 XML 및 HTML 파일을 PDF 파일로 변환 할 수 있습니다. 강한.
5. JSP 출력 스타일. 이 솔루션은 구현하기 쉽지만 취급 스타일은 약간 결함이 있으며 간단한 내보내기를 사용할 수 있습니다.
6. XML에서 수행하는 것은 매우 간단합니다. Word는 2003 년부터 XML 형식을 지원합니다. 일반적인 아이디어는 먼저 Office2003 또는 2007을 사용하여 단어 스타일을 편집 한 다음 XML로 저장하고 XML을 프리 마커 템플릿으로 변환 한 다음 마지막으로 Java를 사용하여 프리 마커 템플릿 및 출력 DOC를 구문 분석하는 것입니다. 이러한 방식으로 생성 된 단어 문서는 사무실 표준을 완전히 준수하며 스타일 및 컨텐츠 제어가 매우 편리하며 인쇄는 변형되지 않습니다. 생성 된 문서는 사무실에서 편집 된 문서와 정확히 동일합니다.
위의 정보와 온라인 의견에 대한 참조를 바탕으로 XML을 사용하여 6 번째 수출 솔루션을 선택했습니다.
간단한 단어 내보내기를 구현하기위한 기본 예는 다음과 같습니다.
단어 템플릿의 내용을 내보내기 위해 Pinyin 부분은 코드 유형에서 대체 될 부분입니다. :
그런 다음 .xml 파일로 Word를 저장하고 파일을 열고 제목을 찾아 $ {title}로 수정 한 다음 차례로 대체 할 내용을 교체하십시오. 그런 다음 .xml 파일 접미사를 .ftl로 변경하고 .ftl 템플릿 파일을 지정된 디렉토리로 가져옵니다. JAR 패키지 Freemarker.jar를로드하십시오. 코드 쓰기 시작 :
메인 코드 :
공개 클래스 워드 테스트 {개인 구성 구성 = null; public WordTest () {configuration = new configuration (); configuration.setDefaultEncoding ( "UTF-8"); } public static void main (String [] args) {WordTest test = new WordTest (); test.createword (); } public void createWord () {map <String, Object> Datamap = new Hashmap <String, Object> (); getData (datamap); configuration.setClassfortemPlatEloading (this.getClass (), ""); // 템플릿 파일이있는 경로 템플릿 t = null; try {t = configuration.getTemplate ( "test.ftl"); // 템플릿 파일 가져 오기} catch (ioException e) {e.printstacktrace (); } 파일 OutFile = 새 파일 ( "d :/outfile"+math.random ()*100000+". doc"); // 내보내기 파일 writer out = null; try {out = new bufferedWriter (new outputStreamWriter (new FileOutputStream (outFile))); } catch (filenotfoundException e1) {e1.printstacktrace (); } try {t.process (datamap, out); // 채우기 데이터를 템플릿 파일로 채우고 대상 파일} catch (templateException e) {e.printstacktrace (); } catch (ioexception e) {e.printstacktrace (); }} private void getData (map <string, object> datamap) {datamap.put ( "title", "title"); Datamap.put ( "Nian", "2016"); datamap.put ( "yue", "3"); datamap.put ( "ri", "6"); Datamap.put ( "Shenheren", "lc"); list <map <string, object >> list = new arraylist <map <string, object >> (); for (int i = 0; i <10; i ++) {map <string, object> map = new Hashmap <String, Object> (); map.put ( "xuehao", i); map.put ( "neirong", "content"+i); list.add (지도); } datamap.put ( "목록", 목록); }}.ftl 파일을 수정하고 목록의 위치를 찾고 파일에 목록을 추가하십시오. <#list 목록을 L>로 추가하여 헤더에 <#list를 xxxx>로 추가)하고 끝에 </#list>를 추가하십시오. 목록 내용을 수정하고 l을 추가하십시오. 출력이라는 이름으로. 예를 들어, Xuehao는 l.xuehao로 수정합니다. 이것은 EL 표현의 사용과 비슷합니다.
위의 내용은이 기사에 관한 모든 것입니다. 모든 사람의 학습에 도움이되기를 바랍니다.