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 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题