После просмотра кода pandas
и xlrd
я пришел к выводу, что гуру могут свободно прыгать:
Краткая справка по Excel:
Современные версии Excel (.xlsx
файлов) - это серия XML файлов, из / в которые Excel читает и пишет.
Excel EXE отвечает за выполнение уравнений, таких как ваша SUM
формула. Поэтому, когда вы открываете свою книгу, Excel вычисляет сумму и сохраняет значение в своих базовых XML файлах.
Однако, не открывая Excel, эта формула не рассчитывается .
Pandas:
Для упрощения , функция pd.read_excel()
использует библиотеку xlrd
для анализа файлов XML и возврата значений в виде DataFrame
.
Однако без Excel для выполнения вычислений (ie: ваша функция SUM
) это значение не сохраняется в базовом файле XML. Таким образом, вы возвращаете 0.
Вот некоторые дальнейшее чтение , любезно предоставлено комментарием @ jmcnamara.
Возможное разрешение:
Возможное разрешение для Вы можете сохранить свои данные в CSV-файле и позволить Python (pandas
) позаботиться о ваших вычислениях и манипулировании данными. Pandas очень рад читать и писать файлы CSV.
В качестве альтернативы, посмотрите subprocess
, чтобы открыть / закрыть Excel изнутри вашего Python скрипта.
псевдокод пример:
import subprocess
# Open Excel and workbook.
subprocess.Popen('start excel.exe /path/to/myExcel.xlsx', shell=True)
# Kill all open Excel instances. (Use with care!)
subprocess.Popen('taskkill /f /im excel.exe', shell=True)