簡體   English   中英

pandas:從 xlsx/xls 中刪除所有公式

[英]pandas: remove all formula from xlsx/xls

我使用腳本將某些單元格中帶有公式的 xls 文件轉換為 xlsx 文件。 問題是具有公式的單元格現在在 xlsx 文件中顯示為“0”。

有沒有辦法擺脫公式而只獲得價值? 尚未在不同的線程中找到解決方案。 我也沒有使用openpyxl的經驗,在這種情況下有很多參考

import os
import re
import pandas as pd
import glob
import time
import xlwt


   
def setwd():
    from pathlib import Path
    import os
    global home
    global save_dir
    
    home = str(Path.home())
    os.chdir(home + r'\...\...\Staffing Report\Input\MyScheduling\Raw_Data')
    
    latest = home + r'\...\Staffing Report\Input\MyScheduling\Raw_Data'
    
    folders = next(os.walk(latest))[1]
    creation_times = [(folder, os.path.getctime(folder)) for folder in folders]
    creation_times.sort(key=lambda x: x[1])
    
    most_recent = creation_times[-1][0]
    print('test' + most_recent)
    
    os.chdir(latest + '\\' + most_recent + '\\')
    
    print('current cwd is: ' + os.getcwd())
    
    
    save_dir = home + '\...\Input\MyScheduling\PBI\\' + 'Individual_Status.xlsx'
    
    return save_dir
    
def rowdrop():
    global df
    global fdt
    einlesen = os.getcwd()
    print('test einlesen: ' + einlesen)
    
 
    df = pd.read_excel('Individual Status.xls', sheet_name = 'Individual Status Raw Data')
    df = df.iloc[6:]  
    df = df.rename(columns=df.iloc[0]).drop(df.index[0])
    
    fdt = pd.read_excel('Forecast Detail and Totals.xls', sheet_name = 'Forecast',)
    fdt = fdt.iloc[0:]
    #fdt = fdt.drop(['Code'],axis=1)
    
    os.chdir(home + '\...\Input\MyScheduling\PBI')
    
    print('Current CWD before export is: ' + os.getcwd())
    
    df.to_excel('Individual Status.xlsx', index = False)
    
    fdt.to_excel('Forecast Detail and Totals.xlsx', index = False)
    
    return df
    
    
#main

setwd()
rowdrop()

我猜這是因為單元格中實際上沒有任何值,而 Pandas 試圖將其加載到 dataframe 中。 還有另一個線程在談論類似的情況,但處理的是 openpyxl。

讀取 Excel 單元格值,而不是計算它的公式 -openpyxl

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM