2016-09-02 6 views
0

약간의 배경검출 워드 문서 테이블

나는 테이블의 형태에서 요구 사항을 분석 할 필요가 소프트웨어 사양을 가지고에서 셀을 합병했다. 항상 같은 형식이 아닙니다. 필자는 win32com을 사용하여 Word 문서를 구문 분석 한 python 스크립트를 상속 한 다음 openpyxl을 사용하여 요구 사항을 Excel 파일로 내 보낸 다음 HP ALM에 업로드했습니다. 에서 발생 둘

파이썬 (또는 파이썬과 통신 할 수있는 몇 가지 다른 언어)를 사용하여

, 내가 병합 된 셀을 구별 할 수있는 비교적 간단하고 쉬운 방법을 찾고 있어요 질문 및 빈 셀 (Microsoft Word 문서) (2010 .docx).

설명

지금까지 내가 지금 몇 주 동안이에 대한 해결책을 찾고있다,하지만 난 아직이 문제에 대한 만족스러운 답을 발견하지 않았습니다.

stackoverflow에서 살펴본 질문이 herehere입니다. 두 번째 질문에는 테이블에 병합 된 셀이 있는지 여부를 알려주는 필드가 있는데 이는 시작 지점이지만 충분한 테이블이 아니기 때문에 여러 페이지에 걸쳐 하나의 슈퍼 테이블이 될 수 있습니다. 솔루션

시도 1)에서

시도 내 첫번째 생각은 확실히 win32com 테이블에 병합 된 셀을 검출 지원이었다. 그래서 나는 나를 위해 이것을 할 방법을 찾고 수색했다. 내가 찾은 유일한 일은 병합 된 셀이 비어 있는지 확인하는 것이고, 이전의 것은 비어있는 것입니다. 그러나 그렇다면 셀이 정말로 비어 있거나 합쳐 졌는지 알 수 없습니다.

시도 2.) 내 다음 생각은 COM 및 win32 API를 사용하여 win32com에 기능을 추가하는 것이 었습니다. 하지만 COM은 상당히 다루기 힘들고 오래된 버전이며 문서화되지 않았고 사용하기가 어렵습니다. win32 API도 마찬가지입니다. 기본적으로, 나는 이것이 가치있는 것보다 더 많은 노력이라는 것을 알았습니다.

시도 3.) 그럼 파이썬을위한 docx와 같은 win32com에 대한 대체 라이브러리를 찾기 시작했습니다. 여기서 문제는 제 3 자 라이브러리를 다운로드 할 수 없도록하는 관리자가 아닌 컴퓨터에서 작업한다는 것입니다. 따라서 win32com과 openpyxl을 사용할 때이 길을 갔기 때문에 아직이 옵션을 시도하지 않았습니다.

시도 4.) 마지막으로 시도해 보았던 가장 최근의 시도는 docx 문서라는 단어를 쉽게 구문 분석 할 수있는 XML 파일로 바꾸는 것이 었습니다. 그러나 XML을 모르거나 XML에서 사용하는 표준 형식 단어를 알지 못합니다.

여기 그리고 지금은 라이브러리를 다시 작성하거나 처음부터 1000 줄짜리 스크립트를 시작하지 않고도 가장 빠르고 깨끗한 방법을 찾고 있습니다. (그런데 디스플레이 GUI가 그 위에 놓인 이유는 그것이 너무 길기 때문입니다.)

답변

0

the doc에 따르면 병합 된 셀은 병합 된 후 하나의 셀이됩니다 (unlike excel). 따라서 병합 된 셀의 개념은 Word에 실제로 존재하지 않습니다.문제를 발견하는 유일한 방법은 질문에 링크 된 게시물에서 찾은 알고리즘을 사용하여 모든 테이블을 분석하는 것입니다. 어떤 누락 된 다른 셀 (병합의 결과입니다) 그들의 장소를 차지하고 있기 때문에 존재하지 않는 셀을 구성합니다.

+0

나는 이것이 답이라고 생각합니다. 원래의 병합되지 않은 셀을 참조하려고 할 때 병합 된 셀이 빈 문자열로 돌아올 것이라고 생각하는 데 오해를했을 수도 있습니다. 이 경우 원래 병합되지 않은 셀을 참조하여 병합 된 셀을 감지 할 수 있으며 실패하면 셀이 병합되었음을 알게되고 단일 병합 된 셀에 문자열을 복사 할 수 있습니다. 이것이 작동하면 빈 셀을 생각하는 것이 잘못되었다는 것을 의미하며, 병합 된 셀은 빈 문자열을 반환하므로 구분할 수 없습니다. 결과와 함께 다시보고하겠습니다. – Rethipher

+0

단어 2010 .docx 테이블에 유니 코드 문자가있는 것 같습니다. 나는 그들이 쉽게 코드를 사용할 수 있다는 것을 알았다. – Rethipher