Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用行号和列号而不是单元格地址编写Excel公式_Python_Excel_Pandas_Xlsxwriter - Fatal编程技术网

Python 用行号和列号而不是单元格地址编写Excel公式

Python 用行号和列号而不是单元格地址编写Excel公式,python,excel,pandas,xlsxwriter,Python,Excel,Pandas,Xlsxwriter,我目前拥有以下代码: revenue_stats_feb = pd.DataFrame({'February' :['=D7/D40','=D7/D39','=D7/D37','=D7/D11','=D8/D7', '=D10/D8'], 'merge': [1,2,3,4,5,6]}) revenue_stats_feb = revenue_stats_feb[['February', 'merge']] 我想知道是

我目前拥有以下代码:

revenue_stats_feb = pd.DataFrame({'February' :['=D7/D40','=D7/D39','=D7/D37','=D7/D11','=D8/D7', '=D10/D8'],
                                  'merge': [1,2,3,4,5,6]})
    revenue_stats_feb = revenue_stats_feb[['February', 'merge']]
我想知道是否可以使用行号和列号而不是单元格地址来编写公式,即“=D7/D40”将是“=(3,6)/(3,39)”,但当它导出到excel时,它的计算方式仍然是D7/D40


提前感谢您的帮助。

一种方法是使用XlsxWriter提供的函数将
(行、列)
值转换为字符串:

from xlsxwriter.utility import xl_rowcol_to_cell

formula = '=%s/%s' % (xl_rowcol_to_cell(6,  3),
                      xl_rowcol_to_cell(39, 3))

print(formula)  # =D7/D40

有关更多详细信息,请参阅XlsxWriter文档部分。

一种方法是使用XlsxWriter提供的函数将
(行、列)
值转换为字符串:

from xlsxwriter.utility import xl_rowcol_to_cell

formula = '=%s/%s' % (xl_rowcol_to_cell(6,  3),
                      xl_rowcol_to_cell(39, 3))

print(formula)  # =D7/D40

有关更多详细信息,请参阅XlsxWriter文档部分。

Excel需要D7/D40,为什么要这样做?因为根据月份的不同,D40可能会更改为D39或D41等,因此我想尝试通过使用len(def.index)分配应为除数的行来实现自动化。您可以使用R1C1(行、列)指定与间接函数组合的单元格值的格式。在计算中,“=间接(“R3C2”,0)”获取单元格B3的值。在Excel中应该类似。或者是细胞的功能?我的Excel技能有点生疏。@b2002这是一个好主意,它正适合我的需要。我现在使用的代码看起来是这样的“=C7/INDIRECT(“R{}C3”,0)”.format((len(output_df.index)+3+len(practice_locations.index)))Excel需要D7/D40,为什么要这样做呢?因为根据月份的不同,D40可能会变为D39或D41等,所以我想尝试使用len(def.index)实现自动化指定应作为除数的行。您可以使用R1C1(行、列)格式指定与间接函数组合的单元格值。在计算中,“=间接(“R3C2”,0)”获取单元格B3的值。在Excel中应该类似。或者是细胞的功能?我的Excel技能有点生疏。@b2002这是一个好主意,它正适合我的需要。我现在使用的代码看起来像这样'=C7/INDIRECT(“R{}C3”,0)'.format((len(output_df.index)+3+len(practice_locations.index)))