openpyxl .xlsx 保存後、エクセルファイルに問題発生
解決したいこと
.xlsxファイルを読み込み、書き込んだ後に保存すると、該当のエクセルファイルを開くときに"一部の内容に問題が見つかりました"という表示が出るので、問題なく開けるようにしたいです。
エクセルで表示されるエラー
修復されたレコード: /xl/externalLinks/externalLink1.xml パーツ内の外部数式参照 (外部数式参照によってキャッシュされた値)
修復されたレコード: /xl/externalLinks/externalLink4.xml パーツ内の外部数式参照 (外部数式参照によってキャッシュされた値)
修復されたレコード: /xl/externalLinks/externalLink5.xml パーツ内の外部数式参照 (外部数式参照によってキャッシュされた値)
該当するソースコード
import os
from datetime import datetime
import datetime
import pdfminer
from pdfminer.high_level import extract_pages
from pdfminer.layout import LAParams
import shutil
from openpyxl import load_workbook
import time
def previous_thursday(date_str):
# 引数の日付を解析する
date = datetime.datetime.strptime(date_str, '%y.%m.%d').date()
# 前の木曜日を見つける
current_day = date
while current_day.weekday() != 3: # 木曜日は週の第4日目(0が月曜日、1が火曜日...)
current_day -= datetime.timedelta(days=1)
formatted_date = current_day.strftime('%y.%m.%d')
year = current_day.year
month = current_day.month
return formatted_date, year, month
def generate_file_path(year, month):
# ファイルパスのフォーマットを指定
file_path_format = r"\\1111\2222\Test\{}\{}月\あ.xlsx"
# 西暦と月をファイルパスに挿入して返す
file_path = file_path_format.format(year, month)
return file_path
# 現在の年と月を取得
current_datetime = datetime.datetime.now()
current_year = current_datetime.year
current_month = current_datetime.month
current_day = current_datetime.day
thursday, fileYear, fileMonth = previous_thursday("24.5.23")
excelFilepath = generate_file_path(fileYear, fileMonth)
wb = load_workbook(filename=excelFilepath)
wb.save(excelFilepath)
自分で試したこと
読み書きをせず開いて保存だけで実行しましたが、それでも同様のエラーでした。問題はエクセルの外部参照で、外部参照を外すともちろんエラーは出ません。外部参照を外さずこのまま保存したいです。
0 likes