У меня есть файл Excel, который содержит тексты и расчеты, как лучше всего прочитать файл Excel в Python? - PullRequest
0 голосов
/ 26 января 2019

Мой файл Excel не имеет заголовков или хороших строк и столбцов. У этого также есть формулы. Я хочу прочитать рассчитанные значения формулы, а не формулы. Какой лучший способ для Python прочитать файл Excel? Я попробовал openpyxl и не могу заставить панд работать.

Образец из файла Excel:

    [A]        [B]        [C]             [D]                [E]
[1] Test Case 3 - Step 8                    
[2] Enter the PL, PF, and PR values from the VSWR file below, the formula will calculate the P1 and P2 values that can be entered in the TPR.                   
[3] PL         PF         PR              P1 = (VL*IL)/2     P2 = PL = PF-PR    
[4] 39.3470    39.4508    0.1038          39.3994            39.3470    
[5]                     
[6] Test Case 3 - Step 9                    
[7] The formula will compare the P1 and P2 values calculate above and determine if they are within the tolerance of 10%.                    
[8] |P1-P2|    % Diff     Tolerance 5.0%            
[9] 0.0524     0.1332%    PASS          

Строки 1, 2, 6 и 7 содержат только тексты и находятся в первом столбце. Строки 3 и 8 являются текстами, показывающими формулы в столбцах A-E. Ячейки A4, B4 и C4 содержат введенные данные. Ячейки D4, E4, A9, B9 и C9 содержат значения после оценки формул.

Код:

import openpyxl
from openpyxl import load_workbook

wbt = load_workbook(filename = "Power_Assurance_Results.xlsx")
wst = wbt.active
Total_Power_Diff = wst['B9'].value
Total_Power_Test = wst['B28'].value

Мне нужно получить значения данных в строках 4 и 9. Для Total_Power_Diff я получаю формулу = A9 / E4, а не значение 0,001332. За Total_Power_Test я получаю None. Формула для C9 имеет вид = IF (B9 <= 0,05, «PASS», «FAIL»). Я не могу понять, как бы я использовал панд для чтения такого файла Excel. Мне показалось, что я прочитал, что могу получить оцененное значение из ячейки, а не по формуле. </p>

1 Ответ

0 голосов
/ 26 января 2019

openpyxl для чтения формул, и pandas даст вам числа, рассчитанные при сохранении. Вы захотите использовать оба, использовать pandas для получения чисел и использовать openpyxl для редактирования номера и сохранения. Если вы не только читаете, то не беспокойтесь об openpyxl.

Теперь, почему у вас не работают панды?

import pandas as pd
wbt = pd.read_excel('Power_Assurance_Results.xlsx')
wbt.head()
...