python xlsxwriter生成的表格微信打開公式顯示為0解決方案

最近業(yè)務(wù)上有給客戶自動生成結(jié)算表格表格的需求,結(jié)果生成之后或舞,客戶老是反饋在微信打開表格之后淹办,里面的公式的值全都是0,使用其他專業(yè)表格軟件打開又顯示正常了

定位問題

    1. 微信文檔查看器低葫、表格查看器,只能對表格的值進(jìn)行查看仍律,不能對公式進(jìn)行計(jì)算嘿悬。
    1. xlsxwriter對表格寫入公式的時(shí)候,如果不指定公式的值水泉,xlsxwriter是不會去計(jì)算公式的值而是以默認(rèn)值0填充善涨。文檔:https://xlsxwriter.readthedocs.io/working_with_formulas.html

原文:XlsxWriter doesn’t calculate the result of a formula and instead stores the value 0 as the formula result. It then sets a global flag in the XLSX file to say that all formulas and functions should be recalculated when the file is opened.
This is the method recommended in the Excel documentation and in general it works fine with spreadsheet applications. However, applications that don’t have a facility to calculate formulas will only display the 0 results. Examples of such applications are Excel Viewer, PDF Converters, and some mobile device applications.
If required, it is also possible to specify the calculated result of the formula using the optional value parameter for [write_formula()]:
worksheet.write_formula('A1', '=2+2', num_format, 4)(https://xlsxwriter.readthedocs.io/worksheet.html#write_formula "write_formula")

問題解析&解決方案

這是由于公式的保存的值為默認(rèn)值導(dǎo)致的問題
解決方案也比較簡單:

    1. 客戶使用正經(jīng)的表格軟件打開就可以解決問題(因?yàn)榇藭r(shí)表格打開后會立即重新計(jì)算一遍公式,客戶看到的時(shí)候草则,0已經(jīng)被重新計(jì)算后覆蓋了钢拧。表格當(dāng)時(shí)就正常了)

考慮到客戶可能會覺得你技術(shù)不太行,為啥別人給他的表微信都正常炕横,就你給的表不行源内?
下面是技術(shù)性解決方案:

    1. 寫入公式的時(shí)候使用write_formula()函數(shù),將表格公式的值一起寫進(jìn)去份殿。

這個(gè)解決方案看起來好像有點(diǎn)道理膜钓,實(shí)際上有個(gè)問題:我為什么要使用公式寫入到表格里面?那就是因?yàn)槲也幌雽懘a計(jì)算這些公式的值呀卿嘲!

    1. 終極解決方案颂斜,打開了表格再重新保存!除了人工手段拾枣,還可以用技術(shù)操作沃疮。Windows有com接口可以調(diào)用表格軟件(Excel盒让、WPS Office)打開表格然后保存。在打開表格的時(shí)候公式就已經(jīng)計(jì)算完畢忿磅。
from win32com.client import DispatchEx, Dispatch   # pip install pywin32
# 讓公式有值
try:
    # Excel.Application是微軟的Excel軟件糯彬,WPS是KET.Application
    xl_app = DispatchEx('KET.Application')  # 加了Ex可以使用獨(dú)立進(jìn)程打開,不干擾當(dāng)前已打開文件
    xl_app.Visible = False  # 不可見
    xl_book = xl_app.Workbooks.Open(filename)  # 打開表格文件
    xl_book.Save()  # 保存
    xl_book.Close()  # 關(guān)閉表格
    xl_app.Quit()  # 退出WPS/EXCEL
except Exception as e:
    print(f'轉(zhuǎn)寫文件失敶兴:{e}')

使用第三種方案撩扒,每次打開關(guān)閉表格大概會耗時(shí)2-3秒,好處就是表格的公式正常了吨些,也不用自己計(jì)算了搓谆,客戶也滿意了;缺點(diǎn)就是如果是Linux就會比較麻煩豪墅,打開關(guān)閉表格的時(shí)候屏幕會出現(xiàn)一個(gè)小窗口一閃而過泉手。

覺得有用請點(diǎn)個(gè)贊,謝謝啦~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末偶器,一起剝皮案震驚了整個(gè)濱河市斩萌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌屏轰,老刑警劉巖颊郎,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異霎苗,居然都是意外死亡姆吭,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門唁盏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來内狸,“玉大人,你說我怎么就攤上這事厘擂±サ” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵刽严,是天一觀的道長昂灵。 經(jīng)常有香客問我,道長港庄,這世上最難降的妖魔是什么倔既? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任恕曲,我火速辦了婚禮鹏氧,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘佩谣。我一直安慰自己把还,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布洽洁。 她就那樣靜靜地躺著褒颈,像睡著了一般。 火紅的嫁衣襯著肌膚如雪认然。 梳的紋絲不亂的頭發(fā)上艇炎,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天酌伊,我揣著相機(jī)與錄音,去河邊找鬼缀踪。 笑死居砖,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的驴娃。 我是一名探鬼主播奏候,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼唇敞!你這毒婦竟也來了蔗草?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤疆柔,失蹤者是張志新(化名)和其女友劉穎咒精,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體婆硬,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡狠轻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了彬犯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片向楼。...
    茶點(diǎn)故事閱讀 38,137評論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖谐区,靈堂內(nèi)的尸體忽然破棺而出湖蜕,到底是詐尸還是另有隱情,我是刑警寧澤宋列,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布昭抒,位于F島的核電站,受9級特大地震影響炼杖,放射性物質(zhì)發(fā)生泄漏灭返。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一坤邪、第九天 我趴在偏房一處隱蔽的房頂上張望熙含。 院中可真熱鬧,春花似錦艇纺、人聲如沸怎静。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蚓聘。三九已至腌乡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間夜牡,已是汗流浹背与纽。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留塘装,地道東北人渣锦。 一個(gè)月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像氢哮,于是被迫代替她去往敵國和親袋毙。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評論 2 345