#ライブラリ設定

import os

import xlwings as xw

 

#デスクトップのpathを得る

#対象EXCELファイルはデスクトップ上と既定したいためdesktop_dir_origin = os.path.expanduser('~/Desktop')

desktop_dir = desktop_dir_origin.replace("\\","/")

#print(desktop_dir)

 

#対象のワークブックファイルを追記モードで開けるかチェックする関数

def xlsx_is_open(filepath: str) -> bool:

    try:

        f = open(filepath, 'a')

        f.close()

    except:

        return True

    else:

        return False

 

#対象ファイル名の設定

name_excel_target = "test.xlsx"

#対象ファイルのフルpath設定(ファイルはDesktop上と既定)

path_excel_target = desktop_dir + "/" +  name_excel_target

 

#対象EXCELファイルが開いていたら強制保存し、EXCELを強制終了する

if xlsx_is_open(path_excel_target):

    print(name_excel_target," がすでに開かれています。")

    #開いているブックに接続

    wb = xw.books.active

    #開いているブックを上書き保存し、閉じる

    wb.save()

    wb.close()

    print("開かれていたブックを上書き保存し、閉じました")

    #EXCEL強制終了

    xw.apps.cleanup()

    print("EXCEL を強制終了しました。")

else:

    print(name_excel_target,' はアクセス可能です。')