Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

얼마전에 질문 드렸던 사람인데요 #234

Closed
kwonhyun opened this issue Nov 9, 2023 · 7 comments
Closed

얼마전에 질문 드렸던 사람인데요 #234

kwonhyun opened this issue Nov 9, 2023 · 7 comments

Comments

@kwonhyun
Copy link

kwonhyun commented Nov 9, 2023

일단 증상만 말씀드릴려구요...이슈가 아니라서 여기다가 이렇게 쓰기엔 좀 그렇네요.ㅎㅎㅎ
일전에 특정 테이블의 셀안에 있는 테이블의 셀을 못 찾는다고 문의 드렸었는데요.
잘 되신다길래 해봤더니 누름틀은 잘 찾아오는데 테이블의 셀은 Section바로 아래의 테이블에서만 찾더라구요..
(아마 누름틀로 보신게 아닌가 싶어요...또 아니면 정말 죄송한데...^^;;;;)

그래서 일단 현재 소스를 가지고 제가 응용해서 할 수 있을까가 궁금해서 여쭤봤어요..
단순히 생각하면 테이블만나면 끝까지 순회하면서 찾아내면 되지 않을까 싶은데 이게 될 것인지 확신이 안 서서 여쭤본겁니다..^^;
(제가 이 소스를 이해하지 못 한 상태이고 한글 구조도...봐도 이해가 잘 안 가는데 맘은 앞서고 해서....ㅎㅎ)
일단 좀 해볼게요..^^;
감사합니다~

@neolord0
Copy link
Owner

안녕하세요.
사용한 함수의 종류나 hwp 파일의 구조가 다르면 테스트할 때 다른 결과가 나옵니다.
테스트 하신 소스랑 hwp파일을 올려 주시면 제가 테스트 하는데 도움이 될 거 같습니다.

@kwonhyun
Copy link
Author

kwonhyun commented Nov 15, 2023

아..늦어서 죄송합니다. 여기다가 커밋을 하라는 말씀이신가요?

@nameofSEOKWONHONG
Copy link

아..늦어서 죄송합니다. 여기다가 커밋을 하라는 말씀이신가요?

개발중인 repository를 링크로 걸거나, 해당되는 소스 부분을 직접 기입하시면 될 것 같습니다.

@neolord0
Copy link
Owner

스크린샷 2023-11-16 오전 8 28 26

이 이미지의 클립 모양의 버튼을 누르면 파일 첨부할 수 있습니다.

@kwonhyun
Copy link
Author

kwonhyun commented Nov 16, 2023

필드값 구하기
한글 파일 첨부가 안되서 이미지로 첨부했습니다.
제가 사용한 코드는 Inserting_image_Cell.java에 있던
ArrayList cellList = CellFinder.findAll(hwpFile, "(_ TEST 1_)");
입니다. 이 때 cellList가 Null이 되었습니다.

그냥 단순한 표 하나 만들고 나서 표의 cell에 이름 부여하고 이미지를 넣으면 되는데 제가 드린 이미지와 같이 표의 셀에 다시 테이블을 만들고 셀필드명 설정 후 해당 필드에 이미지를 넣으려고 했을 때 이미지가 들어가지 않아서 보니까 중첩된 표의 셀은 찾아오지 못 하더라구요.

누름틀의 경우는 해당 누름틀 안에 있는 값은 제대로 가져오는데 셀은 셀 자체도 찾아오지 못하니까 값은 더더욱 못 구하게 되는 거우요..

그런데 neolord0님께서는 된다고 하시니 제가 잘 못 썼을 거 같긴 하지만 어떤 걸 사용해야 될지 잘 모르겠네요..^^;;;;;

@neolord0
Copy link
Owner

찾는 방법이 여러가지 라.. 이전에 말씀드린 것과 다르게 문제가 있더군요.
말씀해 주신 CellFinder.findAll()로 테스트 해보니..
셀 안쪽에 개체들을 검색하지 않은 것으로 확인됐습니다.
수정해서 올렸으니.. 받아서 테스트 해보세요..

@kwonhyun
Copy link
Author

kwonhyun commented Nov 17, 2023

public static ArrayList getCellFieldText(HWPFile hwpFile, String fieldName) {
        ArrayList celList = CellFinder.findAll(hwpFile, fieldName);
        ArrayList fileValueList = new ArrayList<>();
        int i = 0;
        for (Cell cell : celList) {
            Paragraph firstPara = cell.getParagraphList().getParagraph(0);
            ParaText paraText = firstPara.getText();
            String content = "";
            if (paraText != null) {
                try {
                    content = paraText.getNormalString(i);
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                }
                if (null != content && !"".equals(content)) {
                    fileValueList.add(content);
                }
            }
        }
        
        
        return fileValueList;
    }

이렇게 해서 모든 필드들의 값을 가져오게 했더니 잘 됩니다..^^;
방법이 이게 맞을......것 같다는 생각에 했지만요..^^;
이제 다시 응용해보기로 해야겠네요..
도와 주셔서 감사합니다~^^;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants