【问题标题】:Create a string with single and double quotes创建带单引号和双引号的字符串
【发布时间】:2020-03-27 06:32:41
【问题描述】:

我需要使用 Python 将公式插入 Excel。我正在创建一个数据框并添加一个包含公式的列,然后将其写入 Excel。

公式格式为'=HYPERLINK("#'"&F2&"'!A1",F2)'

F2 是一个变量,所有其他字符都是常量。我需要动态生成这个字符串。

我尝试做=HYPERLINK("#'"&F2&"'!A1",F2),但它不起作用,我得到了包含反斜杠的'=HYPERLINK("#\'"&F2&"\'!A1",F2)',公式不起作用。

如何创建像'=HYPERLINK("#'"&F2&"'!A1",F2)' 这样的字符串?

任何帮助将不胜感激。

【问题讨论】:

  • 您可能会发现这很有帮助。 stackoverflow.com/a/517372/13131172
  • 您可能想要使用格式。我不能完全理解你的需求,但你一定可以试试这个。 print('=HYPERLINK("#'"&{}&"'!A1")'.format('F2')).

标签: python excel string dataframe formula


【解决方案1】:

您使用的方法适用于 Python 3,我使用 trinket.io 进行了检查

【讨论】:

  • 谢谢。与上述其他答案相同的问题。
【解决方案2】:

因为你正在动态地制作字符串。您可以做两件事。

  1. r'=HYPERLINK("#'"&F2&"'!A1",F2)'r 表示原始字符串(如果您不使用任何变量)。

  2. 如果您正在使用其他变量动态创建字符串。使用格式化字符串。

    var1= '"#'"&F2&"'!A1"' var2= 'F2' formula= f'=HYPERLINK({var1},{var2} )'

print(formula)

'=HYPERLINK("#&F2&!A1",F2 )'

【讨论】:

  • 谢谢,但是 print() 的行为与存储在变量中时不同。例如 print('=HYPERLINK("#'+"'"+'"&F2&"'+"'!A1"+'",F2)') 给我和你一样的输出。但我需要将它存储在一个变量中并插入到一个数据框列中。当我执行 s = '=HYPERLINK("#'+"'"+'"&F2&"'+"'!A1"+'",F2)' 时,变量 's' 的值为 '=HYPERLINK("#\' "&F2&"\'!A1",F2)'
  • 那么这不是字符串创建的问题。看起来 Pandas 在创建 excel/CSV 文件时添加了转义序列。您需要提供用于编写​​ excel 文件的文件和代码。另外,如果您觉得它有用,您应该投票赞成。
猜你喜欢
  • 2017-02-26
  • 2015-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多