java poi - tl 처리 World 동적 표

4063 단어 poi-tl
간단 한 템 플 릿 처 리 는 다음 링크 를 참고 할 수 있 습 니 다.
https://blog.csdn.net/liushimiao0104/article/details/78520120
저 는 버 전 을 한 번 썼어 요.
    
      com.deepoove
      poi-tl
      1.4.2
    

poi - tl 에 대하 여
poi - tle: poi template languge 는 poi 기반 워드 템 플 릿 으로 문 서 를 만 드 는 오픈 소스 구성 요소 입 니 다.
문서 소개:http://deepoove.com/poi-tl/
GitHub 주소:https://github.com/Sayi/poi-tl
1. 동적 표 의 처리 에 대해 문 서 는 비교적 상세 하 게 작성 되 었 습 니 다. 저 는 간단 한 실제 활용 에 대한 소개 만 하 겠 습 니 다.
detail_table: 표 에 정 의 된 매개 변수 이름 을 물 어보 면 템 플 릿 표 의 임의의 위치 에 쓸 수 있 습 니 다.
DetailTablePolicy: 자신 이 만 든 class 는 이 표를 처리 하 는 데 사 용 됩 니 다.
이 줄 의 코드 는 이 표를 가 져 와 서 이 클래스 에 맡 기 는 것 과 같다.
이 곳 의 파일 경로 에 대해 서 는 참고 만 하 십시오. 프로젝트 프레임 워 크 가 다 르 고 시스템 이 다 르 면 파일 을 가 져 올 수 있 는 경로 에 차이 가 있 습 니 다.서 류 를 찾 지 못 하면 스스로 처리 해 야 합 니 다.
Configure config = Configure.newBuilder().customPolicy("detail_table", new DetailTablePolicy()).build();
XWPFTemplate template = XWPFTemplate.compile("src/test/resources/     .docx", config).render(datas);

월 드 에 사용자 정의 표 가 여러 개 있다 면 다음 과 같이 쓰 십시오.
 	Configure configs=Configure.createDefault();
    	configs.customPolicy("Table1",  new DetailTablePolicy());
    	configs.customPolicy("Table2",  new DetailTablePolicy());    	
        XWPFTemplate template = XWPFTemplate.compile(worldTemplate,configs);
        template.render(dataMap);

데이터
ldatas.put("detail_table",null);
      Style headTextStyle = new Style();
      TableStyle headStyle = new TableStyle();
      TableStyle rowStyle = new TableStyle();

      headTextStyle.setFontFamily("Hei");
      headTextStyle.setFontSize(9);
      headTextStyle.setColor("000000");
      
 
      List headArr=new ArrayList();
      for (int i = 0; i < 3; i++) {           
          RowRenderData header = RowRenderData.build(new TextRenderData("  ",headTextStyle), new TextRenderData("  ",headTextStyle));
          headArr.add(header);
        }
      
      
      datas.put("detail_table", headArr);

2, 작성 DetailTablePolicy 클래스
table 은 이 표 에서 가 져 온 표 입 니 다. 이 표 의 위치 정 보 를 조작 할 수 있 습 니 다.
data 는 detailtable 의 데이터, 데 이 터 는 스스로 정의 합 니 다. 제 데이터 가 글꼴 크기 를 조절 해 야 하기 때문에 모든 List 를 사용 합 니 다. 격식
import com.deepoove.poi.NiceXWPFDocument;
import com.deepoove.poi.data.RowRenderData;
import com.deepoove.poi.policy.DynamicTableRenderPolicy;
import com.deepoove.poi.policy.MiniTableRenderPolicy;
import java.util.List;
import org.apache.poi.xwpf.usermodel.XWPFTable;
import org.apache.poi.xwpf.usermodel.XWPFTableRow;

/**
 * Created by on 2019/5/28.
 */
public class DetailTablePolicy extends DynamicTableRenderPolicy {

  //           
  //int goodsStartRow = 2;
  //            
  int laborsStartRow = 1;

  @Override
  public void render(XWPFTable table, Object data) {
    if (null == data) return;
   // DetailData detailData = (DetailData) data;

    List labors =(List)data;
    if (null != labors) {
      table.removeRow(laborsStartRow);
      //      
      for (int i = 0; i < labors.size(); i++) {
        XWPFTableRow insertNewTableRow = table.insertNewTableRow(laborsStartRow);
        //               
            for (int j = 0; j < 2; j++)	insertNewTableRow.createCell();

        //      
       // NiceXWPFDocument.mergeCellsHorizonal(table, laborsStartRow, 0, 3);
        MiniTableRenderPolicy.renderRow(table, laborsStartRow, labors.get(i));
      }
    }

 
  }

}

표 스타일 제어 참고 가능
https://github.com/Sayi/poi-tl/blob/master/src/test/java/com/deepoove/poi/tl/example/PaymentExample.java
알림: World 에서 PDF 를 돌리 고 다운로드 하 는 기능 이 라면 springboot 프레임 워 크 로 포장 하여 windows 에 발표 하려 면 c 디스크 의 windows - > system 32, 파일 에 jacob - 1.19 - x64. dll 파일 을 넣 어야 합 니 다. 프로젝트 도 jacob - 1.1.9. jar 가방 을 사용 해 야 합 니 다.

좋은 웹페이지 즐겨찾기