cam*_*cam 1 google-apps-script
我有一个包含脚本的 Google Sheet。该脚本创建了一些文本,应该是:
我当前的解决方案,创建一个带有文本的新 gdoc 文件(并在每次脚本运行时打开它并将文本复制到剪贴板)相当慢,并且创建了大量需要稍后删除的文档。
我试图return ContentService.createPlainTextOutput(txt);在 gsheet 脚本中编写,但这会导致错误“TypeError:在对象 ContentService 中找不到函数 createPlainTextOutput”。
我(个人)发现另一个更易于使用的解决方案:
创建一个弹出窗口,其中包含您可以复制和粘贴到任何地方的文本。您可以使用 html 格式的输出或纯文本,具体取决于您的需要/偏好。
电子表格中的简单代码如下所示:
function myFunction() {
var ui = SpreadsheetApp.getUi();
var app = UiApp.createApplication().setWidth(400).setHeight(600);
var html = app.createHTML();
var sh = SpreadsheetApp.getActiveSheet();
var data = sh.getActiveRange().getValues();
var string = '<b>Copy and paste the text below<br><br></b>';
for(var n in data){
string += data[n].join(' - ')+'<br>';
}
html.setHTML(string);
app.add(html);
ui.showModelessDialog(app,'toClipboard...');
}
Run Code Online (Sandbox Code Playgroud)
从菜单、按钮调用它,甚至调整它以适应侧边栏......

刚刚在评论中看到您的文本可能(非常)长,我认为添加滚动面板可能是可取的...代码如下:
function myFunction() {
var ui = SpreadsheetApp.getUi();
var app = UiApp.createApplication().setWidth(400).setHeight(600);
var html = app.createHTML();
var scroll = app.createScrollPanel(html).setPixelSize(400,600);
var sh = SpreadsheetApp.getActiveSheet();
var data = sh.getActiveRange().getValues();
var string = '<b>Copy and paste the text below<br><br></b>';
for(var n in data){
string += data[n].join(' - ')+'<br>';
}
html.setHTML(string);
app.add(scroll);
ui.showModelessDialog(app,'toClipboard...');
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2935 次 |
| 最近记录: |