"OpenPyXL에서""압축되지 않는 파일""이 설정된 파일을 저장하려면"

4848 단어 OpenpyxlPython

개시하다


데스크톱 버전의 Excel로 OpenPyXL로 저장된 xlsx 파일을 열면 '파일 안의 그림을 압축하지 않기' 의 체크 상자를 닫습니다.
확인란에 파일을 열고 저장할 때 문답 없이 닫을 수도 있습니다.
엑셀로 열었을 때 상세 설정에서 확인하면 되지만, 파이톤이 어렵게 자동 생성돼 수동 조작을 생략하려고 했다.
그래.

검증된 환경


릴리즈
Python
3.8.1
openpyxl
3.0.5

어쨌든 대처법.


다음 기록을 통해 압축되지 않은 xlsx 파일을 만들 수 있습니다.
create_xlsx.py
#!/usr/bin/env python

import openpyxl

from openpyxl.workbook.properties import WorkbookProperties
from openpyxl.utils.datetime import CALENDAR_MAC_1904
from openpyxl.workbook._writer import WorkbookWriter

def write_properties_custom(self):
    props = WorkbookProperties()
    if self.wb.code_name is not None:
        props.codeName = self.wb.code_name
    if self.wb.excel_base_date == CALENDAR_MAC_1904:
        props.date1904 = True
    props.autoCompressPictures = False
    self.package.workbookPr = props

WorkbookWriter.write_properties = write_properties_custom


wb = openpyxl.Workbook()
wb.save("Sample.xlsx")
중요한 것은 props.autoCompressPictures = False곳이다.
이 코드로 제작된 xlsx 파일의 상세한 설정을 보면 잘 검사되었는지 확인할 수 있습니다.

프로그램 라이브러리를 강제로 고쳤기 때문에 예상치 못한 동작을 할 수도 있습니다.
혹시 모르니까 조심해서 사용하세요.

조사 결과 메모


다음은 조사의 내용과 상세한 내용을 질질 끌며 쓰시오.
안 읽어도 돼.

말하기 시작하다


OpnePyXL에는 모듈WorkbookProperties이 있습니다.
autoCompressPictures라는 변수가 있는데 True/False를 설정하고 저장하면 반영될 것 같습니다.
그러나 워크북 대상의 속성은 설정되지 않았습니다.
그렇게 말하지만 아까 모듈에 이미 존재했기 때문에 고려하지 않은 건 아니라고 생각해서 많이 봤어요.

OpenPyXL 저장 작업 정보


저장할 때 Workbook 클래스의 save 방법 사용하기
  • writer/excel.py
  • workbook/_writer.py
  • Workbook Properties 클래스의 write()를 두 파일로 호출합니다.
    이 write () 에서 호출된 writeproperties()로 속성을 설정하는 중입니다.
    이번에 이 방법에 처리를 추가하였다.
    Workbook Properties()의 초기 값으로 설정할 수 있다고 생각합니다.

    xlsx 파일 정보


    작업장 속성에 대한 상세한 정보여기.에 기재되어 있습니다.
    autoComporess Pictures는 1 또는 True에서 압축(기본값은 True)되기 때문에 Flashe를 설정합니다.
    참고로 OpenPyXL의 Workbook Properties에 관한 다른 항목도 상세하게 기재되어 있습니다.

    라이브러리 덮어쓰기 정보


    여기 기사를 참고했어요.
    Python으로 라이브러리 처리 덮어쓰기
    단지 본래 있어야 할 형식으로, 기재된 두 가지 항목처럼,self.wb.***확인해서 설정해야 되는 거 아닌가 해서요.
    이번에는 귀찮아서 강제로 트루로 삼았다.

    좋은 웹페이지 즐겨찾기