Система представляет собой (настольную) Windows 11, Python 3.12.2, Pandas 2.2.1, Xlwings 0.31.1
Скрипт отлично работает на 3 из 4 наборов файлов. Все файлы в основном
a_master.xlsx
a_1.xlsx
a_2.xlsx
.
.
a_n. xlsx
Скрипт открывает a_master, а затем проходит через a_1.xlsx через a_n.xlsx.
Макрос Xlwings ищет элементы в a_master и обновляет определенные столбцы фрейма данных или добавляет новую строку , в зависимости от поиска.
Итак, основная логика Python/xlwings
Код: Выделить всё
import xlwings as xw
shtname = 'a sheet name'
app = xw.app(visible=visibleflag)
master_wb = xw.Book('a_master.xlsx', update_links=False)
if not master_wb.sheets.active.name == shtname: # make sure it's correct sheet
master_wb.sheets[shtname].activeate()
nrows, m_hdrs, nsheets = gethdrs('a_master.xlsx', shtname)
update_master = master_wb.app.macro('macroname')
for file in os.listdir('.'):
if file.endswith(".xlsx") and file.find("~$") < 0:
if file != 'a_master.xlsx':
nrows, f_hdrs, nsheets = gethdrs(file, shtname) # uses openpyxl
# do something to verfify headers are the same...
filewb = xw.Book(file, read_only=True, update_links=False, ignore_read_only_recommended=True)
if not filewb.sheets.active.name == shtname: # make sure it's the correct sheet
filewb.sheets[shtname].activate()
update_master('a_master.xml', file, startCol, rowcnt, debug) # call the macro
try:
filewb.close() # doesn't want to work...it will throw an exception.
except:
pass
master_wb.save()
master_wb.close()
app.quit()
Когда у меня есть видимость = True, я вижу он «пытается» сохранить master_wb, а затем почти сразу же перестает отвечать.
Откроется диалоговое окно «сохранения» с шестнадцатеричным именем файла для сохранения файла.
Я не могу «изменить» строку ABCDE0123 обратно на a_master.xlsx — нарушение общего доступа.
Если я просто выберу «Сохранить», выдается ошибка RPC, и файл ABCDE0123 закрывается, а затем снова открывается.
Также выдается следующая ошибка:
Код: Выделить всё
pywintypes.com_error: (-2147023170, 'The remote procedure call failed.', None, None)
Код: Выделить всё
pywintypes.com_error: (-2147023174, 'The RPC server is unavailable.', None, None)
Неисправный набор файлов в общей сложности примерно средний из 4 наборов.
Он МОЖЕТ работать (3 из 4 наборов работают каждый раз) Кажется, 1 комплект работает есть проблема... но с совершенно новыми и свежими данными (они запускаются в пятницу с последними данными с сайта SP) даже первый набор запустился!
Но сегодня пытаюсь заново -запустите его... он терпит неудачу, как и раньше
Я пробовал разные вещи, чтобы понять это...
[*]Excel Inquire не обнаруживает проблем ни с одним входным файлом.
[*]Я обновил и понизил версию Xlwings.
[*]У меня был другой человек без проблем запускает те же сценарии на своем компьютере с Win 10.
[*]Я построил компьютер с Win10, и он работает с поврежденным файлом.
Есть идеи, что мне попробовать?
Подробнее здесь: https://stackoverflow.com/questions/784 ... ikes-again