【问题标题】:openpyxl help - Cannot get excel right trim workingopenpyxl 帮助 - 无法让 excel 正确修剪工作
【发布时间】:2021-11-11 02:42:40
【问题描述】:

我正在尝试在我的 python openpyxl 文件中使用“=Right(A1,8)”Excel 函数,但它所做的只是将公式文本放入单元格中。

我做错了什么?

文件信息: 我有一个工作文件,我需要在其中读取和提取单元格 A1 中的文本(A1 中的确切文本是 SITE:SC05100A)我想剥离“SITE:”部分并将其余部分保存在单元格 B4 中。在电子表格中,我使用"=RIGHT(A1,8)" 返回“SC05100A”。 但是,当我尝试在我的 python 脚本中使用它时,它只是将公式字符串放入单元格中。

单元格 A1 的值为 SITE:SC05100A 单元格 B4 当前为空。

输入的 Python 代码是:

        ws['B4'].value = '=Right(A1,8)'
        print ('A1 value is: ',ws['A1'].value)
        print ('B4 value is: ',ws['B4'].value)

当我运行代码时,我没有收到任何错误,并且输出显示:

        A1 value is:  SITE: SC05100A
        B4 value is:  =RIGHT(A1,8)
        [Finished in 677ms]

是的,我已经尝试过不使用“B4 值是:”部分,但正如您所见,它也可以。
任何建议表示赞赏。

【问题讨论】:

    标签: python excel openpyxl


    【解决方案1】:

    Openpyxl 不计算公式。如果你打开你的 excel 文件,你会看到 excel 正在正确地评估公式。如果您想查看评估值,请使用xlwings(您需要安装 Excel 才能使用)

    import openpyxl as op 
    import xlwings as xw
    
    # Create workbook, add data
    wb = op.Workbook()
    ws = wb.active
    ws['A1'].value = "ABCDEFG"
    ws['B1'].value = '=Right(A1, 3)'
    
    # Save workbook
    wb.save("test.xlsx")
    
    # Reopen with xlwings
    wbxw = xw.Book("test.xlsx")
    print ('B1 value is: ', wbxw.sheets['Sheet'].range('B1').value)
    

    【讨论】:

    • 以前从未听说过 xlwings。看起来它需要先安装 pip 才能尝试。 openpyxl 和 xlwings 有什么区别?
    • Openpyxl 直接读取和写入 xlsx 文件,而 xlwings 使用 excel 本身来打开和读取/写入文件(这就是使用 xlwings 会打开 excel 窗口的原因)。更详尽的解释可以在here 找到。是的,它需要 pip 安装
    猜你喜欢
    • 2011-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-08
    • 2015-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多