[구덩이 밟 기 노트] 자바, poi 로 워드 문서 줄 바 꾸 기 내 보 내기

2602 단어
[구덩이 밟 기 노트] 자바, poi 로 워드 문서 줄 바 꾸 기 내 보 내기
poi 에서 워드 를 내 보 냅 니 다. 템 플 릿 교체 방식 을 사용 하지 않 고 paragraph 와 cell 생 성 워드 를 설정 합 니 다.셀 내용 이 채 워 진 단락 은 자동 으로 줄 을 바 꾸 지 않 았 습 니 다. 원래 줄 을 바 꾸 는 것 은 이렇게 쓰 여 있 었 습 니 다.
infoTableRow.getCell(1).setText(changeLine(entry.getValue()));
    /**
     * word     
     * @param value
     * @return
     */
    private static String changeLine(String value) {
        StringBuffer buffer = new StringBuffer();
        if (value.indexOf("
") > 0) { String[] strings = value.split("
"); for (int i = 0; i < strings.length; i++) { if (i == 0) { buffer.append(strings[i].trim()); } else { buffer.append("\r
"); buffer.append(strings[i].trim()); } } } else { buffer.append(value); } return buffer.toString(); }

자바 줄 바 꿈 문자 ""워드 문서 에 적용 되 지 않 습 니 다. "\r", "\r", "(char) 11", "^ p", "br", ",", ","등 줄 바 꿈 기능 을 사용 할 수 없습니다 ("\r"줄 바 꿈 은 없 지만 빈 칸 효과 가 있 습 니 다).
셀 내 자동 줄 바 꾸 기 실현:
String value = entry.getValue();
//         
XWPFParagraph contentParagraph = infoTableRow.getCell(1).getParagraphs().get(0);
XWPFRun run = contentParagraph.createRun();
setWrap(value, contentParagraph, run);
    /**
     *     
     *
     * @param value            
     * @param paragraph     
     * @param run
     */
    private static void setWrap(Object value, XWPFParagraph paragraph, XWPFRun run) {
        if (((String) value).indexOf("
") > 0) { // String[] text = value.toString().split("
"); run = paragraph.insertNewRun(0); for (int f = 0; f < text.length; f++) { if (f == 0) { run.setText(text[f].trim()); } else { // run.addCarriageReturn();// // run.addBreak(); run.setText(text[f].trim()); } } } else { run.setText((String) value); } }

셀 셀 은 작은 document 에 해당 합 니 다.원본 코드 에 서 는 setText () 방법 으로 내용 을 채 우 고 줄 효 과 를 위해 paragraph 로 변경 합 니 다.addCarriageReturn 은 셀 내 지점 의 효과 (셀 외 가능) 를 실현 하지 못 하고 addBreak () 지점 으로 정상 으로 변경 합 니 다.참조 링크:https://blog.csdn.net/bdy9600/article/details/45688855

좋은 웹페이지 즐겨찾기