scrapy-xlsx,如何在 xlsx 中制作可点击的 link?
scrapy-xlsx, How to make a clickable link in a xlsx?
我不知道我的代码是否对这个问题负责。
带着这个问题(Scapy, Python - To create a clickable link with CSV),我发现CSV不支持hyperlink格式。所以我找到了 scrapy-xlsx
包,安装了它,然后 运行 它。
scrapy crawl GoogleScrapyBot -o output.xlsx
然后我可以得到“output.xlsx”。
当我在我的PC(Windows10,Office365)上打开“output.xlsx”时,打开如下图(hyperlink仍然没有设置)
但是当我在Excel中点击输入window时,
它将更改为可点击的 link。
我不想在 Excel 程序上执行此操作。 Scrapy中有什么可行的方法吗?
您可以在 GoogleBotsSpider
class 中添加此方法。它使用包含在 scrapy-xlsx
中的 openpyxl
。不要忘记添加 from openpyxl import load_workbook
.
def close(self, reason):
super().close(self, reason)
wb = load_workbook(self.settings.attributes["FEED_URI"].value)
ws = wb.active
for i, row in enumerate(ws.rows):
if i: # ignores first row which contains column headers
row[0].hyperlink = row[0].value # here 0 means the first cell of the row, adapt it to your code
row[0].style = "Hyperlink"
wb.save(self.settings.attributes["FEED_URI"].value)
您还需要在 settings.py
中添加此设置 FEED_URI = "output.xlsx"
,但您也可以从 sys.argv
.
中获取它
我不知道我的代码是否对这个问题负责。
带着这个问题(Scapy, Python - To create a clickable link with CSV),我发现CSV不支持hyperlink格式。所以我找到了 scrapy-xlsx
包,安装了它,然后 运行 它。
scrapy crawl GoogleScrapyBot -o output.xlsx
然后我可以得到“output.xlsx”。
当我在我的PC(Windows10,Office365)上打开“output.xlsx”时,打开如下图(hyperlink仍然没有设置)
但是当我在Excel中点击输入window时,
它将更改为可点击的 link。
我不想在 Excel 程序上执行此操作。 Scrapy中有什么可行的方法吗?
您可以在 GoogleBotsSpider
class 中添加此方法。它使用包含在 scrapy-xlsx
中的 openpyxl
。不要忘记添加 from openpyxl import load_workbook
.
def close(self, reason):
super().close(self, reason)
wb = load_workbook(self.settings.attributes["FEED_URI"].value)
ws = wb.active
for i, row in enumerate(ws.rows):
if i: # ignores first row which contains column headers
row[0].hyperlink = row[0].value # here 0 means the first cell of the row, adapt it to your code
row[0].style = "Hyperlink"
wb.save(self.settings.attributes["FEED_URI"].value)
您还需要在 settings.py
中添加此设置 FEED_URI = "output.xlsx"
,但您也可以从 sys.argv
.