しょっちゅう忘れることを書いておく。
![]() |
66 |
704 views
ディレクトリにエクセル(.xlsx、.xls)を置いて、本ツールを実行すると各エクセルファイルにオートシェイプが含まれているかをチェックします。
パスは36行目のC:\excel_filesを変更すればOK。
# coding: UTF-8
import win32com.client
import glob
import os
def get_abs_xlsx_path(dir_name):
xlsx_list = []
merge_list = []
new_list = glob.glob(os.path.join(dir_name, "*.xlsx"))
old_list = glob.glob(os.path.join(dir_name, "*.xls"))
merge_list.extend(old_list)
merge_list.extend(new_list)
for file_name in merge_list:
xlsx_list.append(os.path.abspath(file_name))
return xlsx_list
def is_autoshape_exists(xlsx_file_name):
ret = False
excel = win32com.client.Dispatch("Excel.Application")
#excel.Visible = True
book = excel.WorkBooks.Open(xlsx_file_name)
sheets = book.WorkSheets
for sheet in sheets:
if len(sheet.shapes) > 0:
ret = True
break
excel.Quit()
return ret
def main():
# エクセルファイルを検索する
xlsx_list = get_abs_xlsx_path(r"C:\excel_files")
f = open("result.csv", "w", encoding="utf-8")
for xlsx_file in xlsx_list:
file_name = xlsx_file.split(os.sep)[-1]
if is_autoshape_exists(xlsx_file):
print(f"{xlsx_file} オートシェイプがあります")
f.write(f"{file_name}, あり\n")
else:
print(f"{xlsx_file} オートシェイプがありません")
f.write(f"{file_name}, なし\n")
f.flush()
f.close()
if __name__ == '__main__':
main()
Page 52 of 69.
すぺぺぺ
本サイトの作成者。
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
ChatGPTで自動プログラム作成に取り組み中。
https://www.osumoi-stdio.com/novel/