function - RefreshImport 功能在 Google 表格中不起作用
问题描述
我试图用我的工作表数据填充它,但是
var dataRange = sheet.getDataRange();
得到一个错误。我应该怎么办?
function RefreshImports() {
var lock = LockService.getScriptLock();
if (!lock.tryLock(5000)) return; // Wait up to 5s for previous refresh to end.
var id = "1r7TgCWXfjmcjufT0yz9qcFDlr482SdHDHlZYblXyAt0"; // [YOUR SPREADSHEET ID]
var ss = SpreadsheetApp.openById(id);
var sheet = ss.getSheetByName("crypto"); // sheet name
var dataRange = sheet.getDataRange();
var formulas = dataRange.getFormulas();
var content = "";
var now = new Date();
var time = now.getTime();
var re = /.*[^a-z0-9]import(?:xml|data|feed|html|range)\(.*/gi;
var re2 = /((\?|&)(update=[0-9]*))/gi;
var re3 = /(",)/gi;
for (var row=0; row<formulas.length; row++) {
for (var col=0; col<formulas[0].length; col++) {
content = formulas[row][col];
if (content != "") {
var match = content.search(re);
if (match !== -1 ) {
// import function is used in this cell
var updatedContent = content.toString().replace(re2,"$2update=" + time);
if (updatedContent == content) {
// No querystring exists yet in url
updatedContent = content.toString().replace(re3,"?update=" + time + "$1");
}
// Update url in formula with querystring param
sheet.getRange(row+1, col+1).setFormula(updatedContent);
}
}
}
}
// Done refresh; release the lock.
lock.releaseLock();
// Show last updated time on sheet somewhere
sheet.getRange(7,2).setValue("Rates were last updated at " + now.toLocaleTimeString())
}
我设置了触发器。
解决方案
不知道你想做什么,你的解释还有很多不足之处。
因此,这是一种将公式放入名为“Destination”的工作表的简单方法。
function RefreshImports() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName("crypto");
const rg = sh.getDataRange();
const formulas = rg.getFormulas();
sh.getRange(1,1,formulas.length,formulas[0].length).setFormulas(formulas);
}
推荐阅读
- c# - web api没有返回响应,但返回时形成数据
- javascript - 如何将 map / foreach 与相邻项目一起使用?
- sql - 如何使用 PL/SQL 分析函数计算遗漏中位数
- arrays - 将数组输出到 Excel
- android - 使用 socket.io 制作后台服务以显示通知
- vue.js - 如何在 Vuejs 上进行图表专家更新
- python-3.x - 删除列表中重复项的简单方法
- javascript - 如何正确解析一组 Fetch 响应
- docker - 您的连接不是私人的(此证书无法通过受信任的验证机构进行验证)
- c# - 为什么 C# 配置系统在 IIS 作为 CGI 运行时无法初始化?