我有一个包含文本和计算的excel文件,以python读取excel文件的最佳方法是什么?

时间:2019-01-26 00:14:28

标签: python excel python-2.7 excel-formula

我的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,我不会获得任何帮助。 C9上的公式为= IF(B9 <= 0.05,“ PASS”,“ FAIL”)。 我不知道如何使用熊猫来读取这种Excel文件。我以为我读到可以从单元格而不是公式中获得评估值。

1 个答案:

答案 0 :(得分:1)

openpyxl用于读取公式,大熊猫会为您提供保存时计算出的excel数字。您将要同时使用这两种方法,请使用pandas获取编号,并使用openpyxl编辑编号并保存。除非您只是在阅读,否则不要担心openpyxl。

现在,为什么熊猫对您不起作用?

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