我尝试从Python输出一个CSV文件,并将其中一个条目设置为Google工作表公式:
下面是公式var的样子:
strLink = "https://xxxxxxx.xxxxxx.com/Interact/Pages/Content/Document.aspx?id=" + strId + "&SearchId=0&utm_source=interact&utm_medium=general_search&utm_term=*"
strLinkCellFormula = "=HYPERLINK(\"" + strLink + "\", \"" + strTitle + "\")"
然后对于CSV的每一行,我有这样的代码:
strCSV = strCSV + strId + ", " + "\"" + strTitle + "\", " + strAuthor + ", " + strDate + ", " + strStatus + ", " + "\"" + strSection + "\", \"" + strLinkCellFormula +"\"\n"
这并不完全有效,Google工作表的超链接公式如下:
=HYPERLINK(url, title)
而且我似乎不能让逗号转义。所以在我的工作表中,我得到了一个额外的列,其中的标题,显然公式不工作。任何帮助将不胜感激。
2条答案
按热度按时间kdfy810k1#
尝试使用
;
作为公式参数分隔符。它的工作原理应该相同。mwecs4sa2#
与其重新发明轮子,不如使用内置的
csv.writer
类编写CSV行。这个类负责转义数据中的逗号和引号,因此不需要构建自己的转义逻辑。这有助于避免strLinkCellFormula = ...
和strCSV = strCSV + ...
行中的转义混乱。例如:
注意,在上面的
formula = ...
行中,我使用f-string syntax将URL和title格式化为字符串,还使用 * 撇号 * 定义字符串,因为我知道字符串将包含引号,我不想麻烦地转义它们。这将生成以下CSV:
其中逗号和引号的转义已经处理好了。Excel/GSheets也可以正确读取它,因为它符合标准的CSV格式:
对于您的特定情况,您可以这样写入CSV文件: