【发布时间】:2022-01-26 00:50:16
【问题描述】:
我正在尝试将 pdf 文件上传到谷歌表格中的单个单元格,就像我们在谷歌表格单元格中插入图像一样。我已经搜索了很长时间,但一直找不到任何解决方案。我试过以下代码:
function onOpen(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet()
var menuEntries = [];
menuEntries.push({name: "File...", functionName: "doGet"});
ss.addMenu("Attach ...", menuEntries);
}
function doGet(e) {
var app = UiApp.createApplication().setTitle("upload attachment into Google Drive");
SpreadsheetApp.getActiveSpreadsheet().show(app);
var form = app.createFormPanel().setId('frm').setEncoding('multipart/form-data');
var formContent = app.createVerticalPanel();
form.add(formContent);
formContent.add(app.createFileUpload().setName('thefile'));
formContent.add(app.createHidden("activeCell", SpreadsheetApp.getActiveRange().getA1Notation()));
formContent.add(app.createHidden("activeSheet", SpreadsheetApp.getActiveSheet().getName()));
formContent.add(app.createHidden("activeSpreadsheet", SpreadsheetApp.getActiveSpreadsheet().getId()));
formContent.add(app.createSubmitButton('Submit'));
app.add(form);
SpreadsheetApp.getActiveSpreadsheet().show(app);
return app;
}
function doPost(e) {
var app = UiApp.getActiveApplication();
app.createLabel('saving...');
var fileBlob = e.parameter.thefile;
var doc = DriveApp.getFolderById('0B0uw1JCogWHuc29FWFJMWmc3Z1k').createFile(fileBlob);
var label = app.createLabel('file uploaded successfully');
var value = 'hyperlink("' + doc.getUrl() + '";"' + doc.getName() + '")'
var activeSpreadsheet = e.parameter.activeSpreadsheet;
var activeSheet = e.parameter.activeSheet;
var activeCell = e.parameter.activeCell;
var label = app.createLabel('file uploaded successfully');
app.add(label);
SpreadsheetApp.openById(activeSpreadsheet).getSheetByName(activeSheet).getRange(activeCell).setFormula(value);
app.close();
return app;
}
由于 UiApp 已被弃用,因此它显示错误“UiApp 已被弃用。请改用 HtmlService”。我尝试了以下行来避免 UiApp 错误但没有用:
var app = HtmlService.createHtmlOutput();
是否有任何解决方法可以避免此错误?谢谢。
【问题讨论】:
-
我必须为我糟糕的英语水平道歉。不幸的是,我无法想象
I am trying to upload pdf file to a single cell in google sheet just like we insert image in a google sheet cell.。不幸的是,在当前阶段,无法将 PDF 文件插入到单元格中。那么,我可以问你关于你的目标的细节吗?而且,如果PDF数据有多个页面,你想怎么做? -
@Tanaike 谢谢。是的,如果我们可以将 pdf 文件插入到 google sheet 中,它将被上传到指定的文件夹中。上面的代码做到了,但由于 UiApp 不再可用,所以我正在寻找解决方法。
-
感谢您的回复。我不得不再次为我糟糕的英语水平道歉。不幸的是,我无法理解
if we can insert a pdf file into google sheet and it will be uploaded into a specified folder.。不幸的是,在当前阶段,无法将 PDF 文件插入到单元格中。那么,我可以问你关于你的目标的细节吗?而且,如果PDF数据有多个页面,你想怎么做? -
假设有一个插件,我们使用它上传文件。 pdf的一般图像将插入指定的单元格,但该pdf文件将发送到指定的google驱动器文件夹。现在,我不确定 pdf 页面的复杂性。
-
感谢您的回复。我了解到您想将本地 PC 上的 PDF 文件上传到 Google Drive。你想把确认消息放到一个单元格中。您想使用 HTML 和 Google Apps 脚本来实现这一点。我的理解正确吗?如果我的理解是正确的,请问您要将消息发送到哪个单元格?
标签: javascript pdf google-apps-script google-sheets file-upload