当员工提交google表单时,此脚本将根据表单中员工填写的信息重命名他们上传的文件。(此时它正在提取当前职务位置的名称、职务ID和地址,该文件始终是他们在职务站点上完成的内容的图片。)
但是,,,只有当一个文件/图片上传到表单而不是所有文件时,脚本才会提取这个信息。
怎样的修改才能让它重命名表单中所有上传的文件。
while (files.hasNext()) {
for (var i = 0; i < formResponses.length; i++) {
var formResponse = formResponses[i];
var itemResponses = formResponse.getItemResponses();
var itemResponseFname = itemResponses[0];
var itemResponseLname = itemResponses[10];
var itemResponseID = itemResponses[11];
var itemResponsePhoto = itemResponses[13];
var photoID = itemResponsePhoto.getResponse();
var newName = itemResponseFname.getResponse() + " " + itemResponseLname.getResponse() + " - " + itemResponseID.getResponse();
var url = baseString + photoID + endString;
var urlCheck = file.getUrl();
if ( url == urlCheck) {
var modName = newName + ".jpg";
file.setName(modName);发布于 2021-02-26 11:16:23
这样做的最简单方法如下:
在实践中,这种情况如下所示:
function submit(e) {
const itemResponses = e.response.getItemResponses()
// Read values
const fname = itemResponses[0].getResponse()
const lname = itemResponses[10].getResponse()
const uid = itemResponses[11].getResponse()
const imageIds = itemResponses[13].getResponse()
// Iterate images
for (let imgId of imageIds){
const image = DriveApp.getFileById(imgId)
// Create new filename (preserves extension)
const filename = `${fname} ${lname} - ${uid}${getExtension(image)}`
// Set file name
image.setName(filename)
}
}
/**
* Returns the extension of a file
*
* For example: A file with name 'example.json' will return '.json'.
*
* @param file {DriveApp.File} File to extract the extension from
* @returns {string} The extension with the dot.
*/
function getExtension(file) {
// Gets the last dot and the characters that follow
const r = /(\.\w+)$/.exec(file.getName())
// If it has no extension return an empty string, otherwise return the captured group
return r === null ? '' : r[1]
}显然,您需要添加您似乎拥有的所有其他代码,如果您还没有安装触发器,那么已经安装好了。
https://stackoverflow.com/questions/66369967
复制相似问题