Password Protecting Excel file using Python

前端 未结 3 557
[愿得一人]
[愿得一人] 2020-12-03 16:34

I havent found much of the topic of creating a password protected Excel file using Python.

In Openpyxl, I did find a SheetProtection module using:

3条回答
  •  心在旅途
    2020-12-03 17:13

    Here's a workaround I use. It generates a VBS script and calls it from within your python script.

    def set_password(excel_file_path, pw):
    
        from pathlib import Path
    
        excel_file_path = Path(excel_file_path)
    
        vbs_script = \
        f"""' Save with password required upon opening
    
        Set excel_object = CreateObject("Excel.Application")
        Set workbook = excel_object.Workbooks.Open("{excel_file_path}")
    
        excel_object.DisplayAlerts = False
        excel_object.Visible = False
    
        workbook.SaveAs "{excel_file_path}",, "{pw}"
    
        excel_object.Application.Quit
        """
    
        # write
        vbs_script_path = excel_file_path.parent.joinpath("set_pw.vbs")
        with open(vbs_script_path, "w") as file:
            file.write(vbs_script)
    
        #execute
        subprocess.call(['cscript.exe', str(vbs_script_path)])
    
        # remove
        vbs_script_path.unlink()
    
        return None
    

提交回复
热议问题