Excel формулы, которые исчезают - PullRequest
1 голос
/ 23 марта 2019

Я новичок в питоне. Я хотел бы обработать данные Excel с Python. Я сделал код ниже. Код работает при первом запуске. Он обнаруживает все данные, присутствующие в файле Excel, даже формулы. Проблема в том, что он не работает во второй раз. Это означает, что столбец данных отсутствует. Это столбец, где есть формулы. Я хотел бы, чтобы мой код работал все время. Я заметил, что он больше не определяет формулы во второй раз, когда я запускаю весь свой код. Мой код интерпретирует формулы как «Нет», и при чтении моих данных я прошу не отображать «Нет». Вот почему нет ничего. Второе замечание: если я сохраняю свой файл Excel после первого запуска кода, мой код снова работает. Я хотел бы, чтобы мой код работал все время. Мой код:

import pandas as pd
import numpy as np
import xlsxwriter
from openpyxl import load_workbook
from pandas import ExcelWriter
from pandas import ExcelFile

data=pd.read_excel("site.xlsx","Feuille1", keep_default_na=False, skiprows = [0,1],usecols=[1,2,3,4]) 
print(data)

totalballon=[]
b=[]
espece=np.where(data['Unnamed: 1']=='TOTAL Espèces')[0]
carte=np.where(data['Unnamed: 1']=='TOTAL CB')[0]
cheque=np.where(data['Unnamed: 1']=='TOTAL Chèque')[0]

articles=["Ballon bleu", "CH24 jaune", "Ballon rouge", "Chapeau", "Ballon vert", "Pantalon", "Fleurs"]

print(np.sum(data['Unnamed: 3'][espece]))
print(np.sum(data['Unnamed: 3'][carte]))
print(np.sum(data['Unnamed: 3'][cheque]))


for i in articles:
    nb=np.where(data['Unnamed: 1']==i)[0]
    b.append(np.sum(data['Unnamed: 0'][nb]))
print(b)

ballon=["Ballon bleu", "Ballon rouge", "Ballon vert"]

for j in ballon:
    nb=np.where(data['Unnamed: 1']==j)[0]
    totalballon.append(np.sum(data['Unnamed: 0'][nb]))
totalballon=[sum(totalballon)]
print(totalballon)

with pd.ExcelWriter('site.xlsx', engine='openpyxl') as writer:
    writer.book = load_workbook('site.xlsx')


    TOTALespece = np.sum(data['Unnamed: 3'][espece])
    TOTALcarte = np.sum(data['Unnamed: 3'][carte])
    TOTALcheque = np.sum(data['Unnamed: 3'][cheque])

    df1 = pd.DataFrame({'articles':articles})
    df2 = pd.DataFrame({'nombres':b})
    df3 = pd.DataFrame({'Total ballon':totalballon})

    dfe = pd.DataFrame({'TOTAL Espèces':[TOTALespece]})
    dfcarte = pd.DataFrame({'TOTAL CB':[TOTALcarte]})
    dfcheque = pd.DataFrame({'TOTAL Chèque':[TOTALcheque]})

    df1.to_excel(writer, "Feuille2", index=False)
    df2.to_excel(writer, "Feuille2", index=False, startcol=1)
    df3.to_excel(writer, "Feuille2", index=False, startcol=2)
    dfe.to_excel(writer, "Feuille2", index=False, startcol=3)
    dfcarte.to_excel(writer, "Feuille2", index=False, startcol=4)
    dfcheque.to_excel(writer, "Feuille2", index=False, startcol=5)
    writer.book.save('site.xlsx')
    writer.book.close()

Печать (данные) в первый раз

Печать (данные) второй раз после запуска кода

Неизвестный столбец 3 больше не отображается. Именно в этом столбце находятся все формулы Excel. Мой GitHub с файлом Excel и кодом Python

...