Поделиться вопросом со скриптом

google-apps-script

48 просмотра

2 ответа

У меня есть этот сценарий, который я использую, чтобы сделать копию листа и затем отправить мне эту копию по электронной почте в виде файла xslx, если у меня есть набор листов, которым можно поделиться, со всеми, у кого есть ссылка, сценарий отлично работает, но если он у меня есть для определенных людей он запускается, но выдает значение # вместо данных на странице. страница, которую я пытаюсь отправить, - это формула запроса на импорт, которая перетаскивает данные на лист. любая помощь будет принята с благодарностью.

enter code herefunction emailExcel() {

    var mailTo, subject, body, id, sheetNum, sh, sourceSS, copySS, file, url,token, response;


    mailTo = 'elder1104@gmail.com';
    subject = 'subject';
    body = 'text_in_body';
    id = '1eI-p0nodA4zqP3fsxP5P6iR6gyvSIGRZDMaQSGkb2ds';
    sheetNum = 2;

    sourceSS = SpreadsheetApp.openById(id);
    copySS = sourceSS.copy('copy of ' + sourceSS.getName());
    sh = copySS.getSheets()[sheetNum];
    sh.getDataRange().setValues(sh.getDataRange().getDisplayValues())
    copySS.getSheets()
    .forEach(function (sh, i) {
        if(i != sheetNum) copySS.deleteSheet(sh);
     })

    file = Drive.Files.get(copySS.getId());
    url = file.exportLinks[MimeType.MICROSOFT_EXCEL];
    token = ScriptApp.getOAuthToken();
    response = UrlFetchApp.fetch(url, {
    headers: {
        'Authorization': 'Bearer ' + token
     }
    });

    MailApp.sendEmail(mailTo, subject, body, {
    attachments: [response.getBlob()
        .setName('TESTING.xlsx')]
    });

   DriveApp.getFileById(copySS.getId()).setTrashed(true);
   }
Автор: Jason Elder Источник Размещён: 08.11.2019 11:18

Ответы (2)


0 плюса

Чтобы поделиться файлом диска с конкретными людьми, попробуйте добавить setSharing(accessType, permissionType)метод, указанный в файле класса .

Как уже упоминалось в разделе Работа с перечислениями ,

служба Drive использует перечисления Access и Permission, чтобы определить, какие пользователи имеют доступ к файлу или папке.

Таким образом, чтобы получить доступ к файлу или папке в DriveApp , вы должны добавить следующие перечисленные типы, чтобы определить пользователей, которые могут получить доступ к файлу или папке, помимо любых отдельных пользователей, которым явно предоставлен доступ

Будет действительно полезно попробовать просмотреть данные документы.

Автор: Teyam Размещён: 21.08.2016 06:04

0 плюса

Я выбрал легкий путь и создал новую электронную таблицу, и я импортирую в эту электронную таблицу, используя сценарий, так что теперь новый документ содержит только данные и теперь отлично работает.

Автор: Jason Elder Размещён: 24.08.2016 01:54
Вопросы из категории :
32x32