병합에 대한 버그의 일부에 파이썬 엑셀 --openpyxl 운영

곧 작업 내용을 시작합니다 새로운 작업 관련 데이터를 유지

새로운 작업 데이터 출력 모드는 이전 데이터를 유지하는 동시에, 아마도 새로운 데이터로 매일 수출 엑셀을 사용하고 엑셀을 반영한다.

내가 와서 많은 SQL을 작성하기 전에, 다음 복사 Navicat는에서 Excel 내부에서 붙여 넣습니다.

나는 현재 이에 대한 자동화 된 스크립트를하고있는 중이 야, 도서관이에 대한 몇 가지 작은 버그 이야기 다음, openpyxl입니다.

 

1 개 2.5.x의 버전, 당신은 셀을 병합

여러 셀을 병합 할 때, 다음 merge_cells ()를 사용하고, 셀의 경계선의 합병 이전에 사라집니다. 다시 공식 웹 사이트 문제 나는 해결책 복잡 조금 찾을 수 있지만, 한 당신이의 2.6.x 버전으로 업데이트로이 문제가 자동으로 해결된다.

 

상단은, 미개봉 다른 세포 쓸 수없는 왼쪽에 unmerge_cell () 비구 속성 병합 된 셀을 사용하는 2 개 2.6 버전, 추가로 기록 할 수 있으며,이 유형의 'READ_ONLY'말을하라는 메시지가 표시됩니다.

예를 들면 다음과 같습니다 : 당신이 work_sheet.unmerge_cell 사용하는 경우 ( "A1 D4가"), 결합 ( "A1 D4")는, 합병 잠금을 해제합니다 후,

그럼 당신은 A1 할당을주고, 당신은 A2, A3, A4, B1 .... 할당, 다음의 팁을 줄 수 없다

 ===>  - Openpyxl [ 'MergedCell'객체 속성 "하이퍼 링크"읽기 전용]  

나는 삭제 삭제로 전환했지만,이 방법 만 내용, 형식을 삭제하거나 고정 할 수 있습니다.

긴 소스 코드를 가지고 할 수있는 방법하지만 종료하지 찾고.

아마, 합병에 노출 된 후, 코드 기본적으로 다른 세포가 null해야하고 우리는 만 잠금 해제를 다시 병합 느낌이 아마도 때문에, 새로운 값을 할당 할 수 없습니다? ? (용의자가 원래의 의도를 이해하지 못하는 위치)

치료 후, 아마 생각은 셀 속성, 즉 속성 READ_ONLY 취소를 포맷하는 것입니다.

아마 다음 코드를 추가 workshet.py에서 할 수있는 소스 파일 (620)에 대해 : (# autho의를 ... 시작, 우리는 ~ ~ ~ 자신의 소스를 추가 제어)

........................ 
     if cr.coord not in self.merged_cells:
            raise ValueError("Cell range {0} is not merged".format(cr.coord))

        self.merged_cells.remove(cr)

        # Deletes the MergedCellRange.
        # del self._merged_cell_range[cr.bounds]
        # autho     : watson
        # aim       : deal with the bug about umerger
        # describe  : Add the following five lines of code to format the attribute.
        min_col, min_row, max_col, max_row = cr.bounds
        for row in range(min_row, max_row + 1):
            for col in range(min_col, max_col + 1):
                if col == min_col and row == min_row:
                    continue
                del self._cells[(row, col)]


    def append(self, iterable):
        """Appends a group of values at the bottom of the current sheet.
........................ 

 

发布了14 篇原创文章 · 获赞 12 · 访问量 1万+

추천

출처blog.csdn.net/Watson_Ashin/article/details/88862388