python動態(tài)刷新函數(shù) python刷新頁面

Python刷新excel

用openpyxl讀取excel的load_workbook有個data_only參數(shù)。

創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計與策劃設(shè)計,通河網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:通河等地區(qū)。通河做網(wǎng)站價格咨詢:18980820575

例如:

yb_wb = load_workbook(u"D:\Desktop\xxx.xlsx", data_only=True)顧名思義,True時,只讀data,忽略公式。

但是有個情景是——得先保留公式,根據(jù)舊公式寫入新公式。然后再讀取值進行操作。也就是說先data_only = False,然后再data_only = True。

這樣會導(dǎo)致讀取值操作的時候,公式全部沒有了。對,全部為空。就是這么奇怪。

wb = openpyxl.load_workbook(‘a(chǎn)bc.xlsx’, data_only=True)

當(dāng)’abc.xlsx’被生成并在Excel程序中打開并保存之后(這個過程Excel會把公式結(jié)果計算出來),該文件附帶有兩套值,一套是公式全都沒有計算的(data_only=False(默認)),一套是公式計算了結(jié)果的(data_only=True)。(如果沒有被Excel打開并保存,則只有一套值(data_only=False的那套,公式?jīng)]有計算結(jié)果的)。

此時,以data_only=True或默認data_only=False打開會得到兩種不同的結(jié)果,各自獨立,即data_only=True狀態(tài)下打開的,會發(fā)現(xiàn)公式結(jié)果為None(空值)或者一個計算好的常數(shù),而不會看到它原本的公式是如何。而data_only=False則只會顯示公式而已。因此,data_only=True狀態(tài)下打開,如果最后用save()函數(shù)保存了,則原xlsx文件中,公式會被替換為常數(shù)結(jié)果或空值。而data_only=False狀態(tài)下打開,最后用save()函數(shù)保存了的話,原xlsx文件也會只剩下data_only=False的那套值(即公式),另一套(data_only=True)的值會丟失,如想重新獲得兩套值,則仍舊需要用Excel程序打開該文件并保存。

解決方法:

可以定義一個刷新函數(shù)重新打開一次并保存。

from win32com.client import Dispatch

def just_open(filename):

xlApp = Dispatch("Excel.Application")

xlApp.Visible = False

xlBook = xlApp.Workbooks.Open(filename)

xlBook.Save()

xlBook.Close()

print('自動更新結(jié)束')

filename = r"D:\Desktop\xxx.xlsx"

just_open(filename)

先調(diào)用win32com打開一次,就OK,原公式就會變成值,后面就可以愉快的操作了。

python的類中怎么實現(xiàn)動態(tài)化函數(shù)?

給你這樣一個例子吧,這個例子里面有動態(tài)增加類的函數(shù)。

聲明一個類,類初始化的時候讀取配置文件,根據(jù)配置列表加載特定目錄下的模塊下的函數(shù),函數(shù)和模塊同名,將此函數(shù)動態(tài)加載為類的成員函數(shù)。

代碼如下所示:

class WinBAS(Bas):

def __init__(self):

self.__baslist = {}

self.__Init_Modules()

pass

def __Init_Modules(self):

import modplugs

for m in modplugs.__moduleset__:

mh = __import__('modules.' + m)# + '.' + m)

ma = getattr(mh, m)# + '.' + m)

ma = getattr(ma, m)

setattr(self.__class__, m, ma)

modplugs.py是模塊配置文件如下:

__moduleset__ = [

'BAS_GetUserList',

]

然后建立目錄modules下面建立一個空的__init__.py文件,把目錄變?yōu)橐粋€包,在modules目錄下建立真正的BAS_GetUserList實現(xiàn):BAS_GetUserList文件中有個BAS_GetUserList函數(shù)如下:

def BAS_GetUserList(self, strs):

return [0, strs]

這樣WinBAS類就可以動態(tài)加入了BAS_GetUserList函數(shù)。

python里面 如何動態(tài)調(diào)用 一個函數(shù)

function="luckywin."+case_name+"."+def_name

function=eval(function)

function(player_id,test_url)

function是個字符串,function(player_id,test_url) 這樣寫肯定不是字符串,怎么能用eval呢,直接eval function返回函數(shù)名,然后調(diào)用函數(shù)

標題名稱:python動態(tài)刷新函數(shù) python刷新頁面
文章來源:http://muchs.cn/article24/dospoje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護、靜態(tài)網(wǎng)站、自適應(yīng)網(wǎng)站、網(wǎng)站策劃、網(wǎng)頁設(shè)計公司、品牌網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管