如何在Excel工作簿上更新单元格并打印新值?

问题描述

我有一个Excel电子表格,该电子表格在列D的单元格上具有引用单元格F3 - F5的公式。我需要通过python更新单元格F3-F5,刷新列D上的公式,并打印更新后的值。由于我需要保留工作簿上的所有公式,但需要打印值而不是公式,因此,我认为解决此问题的最佳方法是在更新单元格后复制工作簿。但是,就我的代码而言,我的打印语句的输出None。当我通过excel打开新工作簿时,D列中的单元格被填充,因此我不确定当前的方法是否以某种方式破坏了我的工作簿。

from openpyxl import load_workbook


def main():

    xl_path = r'old_wb.xlsx'
    output = r'new_wb.xlsx'
    # sw_name = input('Enter Switch Name:')
    # time_zone = input('Enter the time zone')
    # time_offset = input('Enter the time offset')

    wb = load_workbook(filename=xl_path)
    ws = wb['Sheet1']
    ws['F3'] = 'IL-1234'
    wb.save(output)

    new_wb = load_workbook(filename=output,data_only=True)
    new_ws = new_wb['Sheet1']
    for row in range(3,201):
        val = new_ws.cell(row=row,column=4).value
        print(val)


if __name__ == '__main__':
    main()

有没有更好的方法可以实现我的目标?也许是一种解决方案,我不必创建新的工作簿,但可以在更新单元格后刷新公式结果?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)