報錯typeError: NAN/INF not supported in write_number() without 'nan_inf_to_errors' Workbook() 的解決辦法


  1. 公司項目導出數據時,使用了xlsxWriter來把數據寫入到excel文件中
  2. 普通從關系數據庫導入的數據,導出完全沒有問題
  3. 突然有天發現報錯了,錯誤信息:typeError: NAN/INF not supported in write_number() without 'nan_inf_to_errors' Workbook() option
  4. 分析了錯誤的背景,導入的時數據,原始數據時excel,
    • 定位原因,excel導入時用的是numpy,保留了excel特有的數據類型nan
    • 導出時,無法寫入nan
  5. 解決辦法一:
    • mongodb取出值的時候,判斷一下str(value) in ["NaN","nan","NAN"],然后替換為None
  6. 解決方法二:
    • 設置xlsxwriter.Workbook()的配置
      • write()和write_number()方法,將nan,inf和-inf認為是Excel錯誤。
      • Excel不處理NAN / INF的號碼,因為它們映射到產生錯誤碼公式解決方法#NUM!和#DIV/0!。默認是False。
      • 這個配置改成True就可以了
      • workbook = xlsxwriter.Workbook(filename, {'nan_inf_to_errors': True})


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM