openpyxl创建一个引用另一个工作表中的单元格的函数

时间:2013-08-14 18:17:44

标签: python openpyxl

我几天前刚刚开始使用openpyxl,它是一个很棒的图书馆。但是,对于高级功能,文档似乎很少。我有几个问题。

  1. openpyxl似乎将我插入的公式更改为小写,从而导致excel的未知引用。
  2. 此外,我更改了工作表的名称以容纳小写但仍然找到#NAME?引用所在的单元格中的错误。
  3. 有人可以告诉我如何或在哪里找到如何在openpyxl中引用其他工作表中的单元格

    import openpyxl.Workbook
    wb = Workbook()
    ws = wb.get_active_sheet()
    #shows up lowercase with name error in excel
    ws.cell('A1).value = "$'Sheet'.E7 + 123"
    #still shows a name error in excel
    ws.cell('A2').value = "$'sheet'.E7 + 123"
    

2 个答案:

答案 0 :(得分:4)

试试这个:

from openpyxl import Workbook
wb = Workbook()

ws = wb.create_sheet()
ws.title ='NewSheet'
ws.cell('E7').value = 7

ws = wb.create_sheet()
ws.cell('A1').value = "=NewSheet!E7 + 123"

wb.save( filename = 'temp2.xlsx' )

答案 1 :(得分:0)

from openpyxl import Workbook, utils
wb = Workbook()

ws = wb.create_sheet()
ws.title ='NewSheet'
ws.cell('E7').value = 7

ws = wb.create_sheet()
ws.cell('A1').value = f"={utils.quote_sheetname(ws.title)}!E7 + 123"

wb.save( filename = 'temp2.xlsx' )

上一个答案的问题在于它取决于工作表的标题为“ NewSheet”。使用quote_sheetname()可以控制。