m0_55417088 2021-08-30 14:13 采纳率: 100%
浏览 61
已结题

lxwings能否读取原Excel内的公式?

我的原Excel里自带公式,要实现插入数据,要先读取这个Excel文件,可是pandas转化为datafra的过程中,这些公式会失效。
请问,lxwings是否能够读取原Excel文件中的公式来实现插入数据呢?如果不行,是否还有别的办法?万分感谢!

  • 写回答

1条回答 默认 最新

  • 咕泡-三木 2021-08-30 14:32
    关注

    当然可以

    需要使用公式, 就得用原生的excel库,比如openpyxl,xlwt,xlrd,xlwings 这些,他们会按照excel的标准的处理数据,
    而不是像pandas一样将数据转为DataFrame (已经不是excel的格式了)

    举个例子,这里C1 是公式 ,结果是 A1和B1相加而来

    img

    用Python处理

    import openpyxl
    
    # 读取和修改公式本身
    file = openpyxl.open(r"新建 Microsoft Excel 工作表.xlsx")
    print(file.active["C1"].value)
    
    # 读取公式计算结果
    e = openpyxl.open(r"新建 Microsoft Excel 工作表.xlsx", data_only=True)
    print(e.active["C1"].value)
    

    执行结果

    =A1+B1
    3
    

    支持xls版本

    import xlwings as xw
    
    book = xw.Book(r"新建 Microsoft Excel 工作表.xls")
    sheet = book.sheets["Sheet1"]
    print(sheet.range("C1").formula) # 公式
    print(sheet.range("C1").value)   # 公式的计算结果
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月7日
  • 已采纳回答 8月30日
  • 赞助了问题酬金 8月30日
  • 创建了问题 8月30日

悬赏问题

  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分