我正在尝试编写一个脚本来直接将数据从存储在本地硬盘驱动器上的 .csv 文件上传到谷歌电子表格,而不将 .csv 放入谷歌文档列表中。
我意识到谷歌电子表格已经有这样做的功能,但我在这里的最终目标是能够每天从本地驱动器上的 .csv 上传数据到我的脚本,对其进行排序,然后只返回必要的信息到电子表格。
目前我正在尝试通过在我的电子表格中将 .csv 数据作为字符串返回来测试我的 readDSR(应该读取上传的 .csv)函数。然而它不会工作。我真的很感激这方面的一些帮助。我的代码如下
function onOpen() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var entries =
[ {name:"Read Data", functionName:"readRows"},
{name:"Upload DSR", functionName:"findDSR()"} ];
sheet.addMenu("Du-par's", entries);
};
function findDSR() {
var openFile = UiApp.createApplication();
var formContent = openFile.createVerticalPanel();
formContent.add(openFile.createFileUpload().setName("DSRfile"));
formContent.add(openFile.createSubmitButton("Start Upload"));
var form = openFile.createFormPanel();
form.add(formContent);
openFile.add(form);
SpreadsheetApp.getActiveSpreadsheet().show(openFile);
}
function readDSR(e) {
DSR = e.parameter.DSRfile;
csvFile = DSR.getContentAsString();
var sheet = getActiveSheet();
var lastRow = sheet.getLastRow()+1;
var lastCell = sheet.getLastCell("A"+lastRow);
lastCell.setValue = csvFile;
}
}
编辑,9 月 14 日 22:48
太棒了,感谢您的快速回复。这是我的新脚本,给出了您指示我访问的另一篇文章中的信息。出于某种原因,我仍然遇到错误,但我现在理解了这个概念。我不断得到
“遇到错误:发生意外错误。”
这应该给我一个“上传完成”的消息。问题可能是我在电子表格中执行脚本吗?我很确定问题一定出在“readDSR”函数中。
// Create Menu to Locate .CSV
function findDSR(e) {
var app = UiApp.createApplication();
var formContent = app.createVerticalPanel();
formContent.add(app.createFileUpload().setName("DSRfile"));
formContent.add(app.createSubmitButton("Start Upload"));
var form = app.createFormPanel();
form.add(formContent);
app.add(form);
SpreadsheetApp.getActiveSpreadsheet().show(app);
}
// Upload .CSV file
function readDSR(e)
{
var DSRload = e.parameter.DSRfile;
var Doc = DriveApp.createFile("DSRload");
var app = UiApp.getActiveAplication();
// Display a confirmation Messege
var label = app.createLable("File Upload Successful");
app.add(label);
DocID = getDocId();
MakeTranslationDoc = DocID;
return app();
}