阻止 Googe Sheet 刷新 HTML 数据
Stop Googe Sheet from refreshing HTML data
我有一个 sheet,它使用 HTML 从很多网页中提取大量财务数据。问题是它慢了很多。另外,由于 HTMLs 等的数量过多,它开始出错。我寻找以下解决方案:
- 有一个应用程序脚本来控制刷新..(不太有效)
- 我可以通过任何方式自动复制粘贴旧数据,直到新数据进入并更新旧粘贴值..(也无效,因为我找不到自动化方法)
- 尝试找到一种方法来使用 google sheet 自动计算来帮助....(也失败了)
有没有办法限制 sheet 自动刷新这么多次...?
您可以试试这个插件,它可以按需冻结您的电子表格:
https://gsuite.google.com/marketplace/app/spreadsheet_freezer/526561533622
在 documentation 你可以看到:
Functions that pull data from outside the spreadsheet recalculate at the following times:
- ImportRange: 30 minutes
- ImportHtml, ImportFeed, ImportData, ImportXml: 1 hour
- GoogleFinance: may be delayed up to 20 minutes
如果您想以较低的频率重新计算 importHTML
函数的值,您一定要使用 Apps 脚本来获取数据,然后将信息填充到您的电子表格中。
您可以在 Apps 脚本上使用 UrlFetchApp class 来获取数据并定义更新的计时逻辑。
function myAppScriptFunction() {
var urls = ["your-website-url1", "...", "your-website-urlN"];
var response = UrlFetchApp.fetchAll(urls);
//... Parse the response and store the information you need in a table-like data structure
// Let's assume the variable parsedResponseData is created
var ss = SpreadsheetApp.getActiveSheet();
ss.getRange("your-range").setValues(parsedResponseData);
}
您现在应该将您的函数包装在您的自定义时间逻辑中以管理更新。
您可以使用 Apps 脚本上的时间驱动触发器来实现此目的。
function triggerSetup() {
ScriptApp.newTrigger('myAppScriptFunction')
.timeBased()
.everyHours(6)
.create();
}
参考文献:
我有一个 sheet,它使用 HTML 从很多网页中提取大量财务数据。问题是它慢了很多。另外,由于 HTMLs 等的数量过多,它开始出错。我寻找以下解决方案:
- 有一个应用程序脚本来控制刷新..(不太有效)
- 我可以通过任何方式自动复制粘贴旧数据,直到新数据进入并更新旧粘贴值..(也无效,因为我找不到自动化方法)
- 尝试找到一种方法来使用 google sheet 自动计算来帮助....(也失败了)
有没有办法限制 sheet 自动刷新这么多次...?
您可以试试这个插件,它可以按需冻结您的电子表格:
https://gsuite.google.com/marketplace/app/spreadsheet_freezer/526561533622
在 documentation 你可以看到:
Functions that pull data from outside the spreadsheet recalculate at the following times:
- ImportRange: 30 minutes
- ImportHtml, ImportFeed, ImportData, ImportXml: 1 hour
- GoogleFinance: may be delayed up to 20 minutes
如果您想以较低的频率重新计算 importHTML
函数的值,您一定要使用 Apps 脚本来获取数据,然后将信息填充到您的电子表格中。
您可以在 Apps 脚本上使用 UrlFetchApp class 来获取数据并定义更新的计时逻辑。
function myAppScriptFunction() {
var urls = ["your-website-url1", "...", "your-website-urlN"];
var response = UrlFetchApp.fetchAll(urls);
//... Parse the response and store the information you need in a table-like data structure
// Let's assume the variable parsedResponseData is created
var ss = SpreadsheetApp.getActiveSheet();
ss.getRange("your-range").setValues(parsedResponseData);
}
您现在应该将您的函数包装在您的自定义时间逻辑中以管理更新。 您可以使用 Apps 脚本上的时间驱动触发器来实现此目的。
function triggerSetup() {
ScriptApp.newTrigger('myAppScriptFunction')
.timeBased()
.everyHours(6)
.create();
}