Email 根据选择,选择案例以通过电子邮件发送不同的工作表
我使用以下脚本将工作表转换为.csv文件,然后通过电子邮件发送给某人Email 根据选择,选择案例以通过电子邮件发送不同的工作表,email,google-apps-script,export-to-csv,Email,Google Apps Script,Export To Csv,我使用以下脚本将工作表转换为.csv文件,然后通过电子邮件发送给某人 RANGE="A1:AC20"; SHEET_NAME="Biomisters.csv"; //Types available : pdf,csv or xlsx EXPORT_TYPE="csv"; function EmailBiomisters() { //Assign The Spreadsheet,Sheet,Range to variables
RANGE="A1:AC20";
SHEET_NAME="Biomisters.csv";
//Types available : pdf,csv or xlsx
EXPORT_TYPE="csv";
function EmailBiomisters() {
//Assign The Spreadsheet,Sheet,Range to variables
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getSheetByName(SHEET_NAME);
var range=sheet.getRange(RANGE);
//Range values to export
var values=range.getValues();
//Create temporary sheet
var sheetName=Utilities.formatDate(new Date(), "GMT", "MM-dd-YYYY hh:mm:ss");
var tempSheet=ss.insertSheet(sheetName);
//Copy range onto that sheet
tempSheet.getRange(1, 1, values.length, values[0].length).setValues(values);
//Save active sheets (Unhidden)
var unhidden=[];
for(var i in ss.getSheets()){
if(ss.getSheets()[i].getName()==sheetName) continue;
if(ss.getSheets()[i].isSheetHidden()) continue;
unhidden.push(ss.getSheets()[i].getName());
ss.getSheets()[i].hideSheet();
}
//Authentification
var params = {method:"GET",headers:{"authorization":"Bearer "+ ScriptApp.getOAuthToken()}};
var url="https://docs.google.com/spreadsheets/d/"+ss.getId()+"/export?format="+EXPORT_TYPE;
//Fetch URL of active spreadsheet
var fetch=UrlFetchApp.fetch(url,params);
//Get content as blob
var blob=fetch.getBlob();
var mimetype;
if(EXPORT_TYPE=="pdf"){
mimetype="application/pdf";
}else if(EXPORT_TYPE=="csv"){
mimetype="text/csv";
}else if(EXPORT_TYPE=="xlsx"){
mimetype="application/xlsx";
}else{
return;
}
//Send Email
var sheet1 = ss.getSheetByName('data').getRange("B1").getValue();
//var mesbody = sheet1.getRange("B1");
GmailApp.sendEmail('test@test.com',
'Biomisters.csv',
sheet1,
{
attachments: [{
fileName: "Biomisters" + "."+EXPORT_TYPE,
content: blob.getBytes(),
mimeType: mimetype
}]
});
//Reshow the sheets
for(var i in unhidden){
ss.getSheetByName(unhidden[i]).showSheet();
}
//Delete the temporary sheet
ss.deleteSheet(tempSheet);
}
我想要实现的是能够从单元格A3的下拉列表中选择图纸名称。在本例中,工作表的名称是“Biomisters.csv”,但我还有十张其他工作表可供选择。
然后,我需要将代码中提到“Biomisters.csv”的每个实例更改为A3中的当前选择 范围不变,发送的电子邮件地址也不变。 选择时唯一会改变的是: 活页名称;电子邮件主题行;电子邮件附件 顺便说一句,我不接受上述代码的信用。我在网上找到了它,并以最基本的形式编辑了它,以满足我的需要。
- 使用
以友好方式检索下拉列表的选定值ss.getSheetByName(“具有下拉列表的工作表的名称”).getRange(“A3”).getValue()
- 使用
检索不带扩展名的工作表的名称-请参阅SHEET\u NAME.split(“.”[0]
- 用变量替换硬编码的主题
RANGE="A1:AC20";
//Types available : pdf,csv or xlsx
EXPORT_TYPE="csv";
function EmailBiomisters() {
//Assign The Spreadsheet,Sheet,Range to variables
var ss=SpreadsheetApp.getActiveSpreadsheet();
var SHEET_NAME=ss.getSheetByName("Name of the sheet with the dropdown").getRange("A3").getValue();//"Biomisters.csv";
var sheet=ss.getSheetByName(SHEET_NAME);
var range=sheet.getRange(RANGE);
//Range values to export
var values=range.getValues();
//Create temporary sheet
var sheetName=Utilities.formatDate(new Date(), "GMT", "MM-dd-YYYY hh:mm:ss");
var tempSheet=ss.insertSheet(sheetName);
//Copy range onto that sheet
tempSheet.getRange(1, 1, values.length, values[0].length).setValues(values);
//Save active sheets (Unhidden)
var unhidden=[];
for(var i in ss.getSheets()){
if(ss.getSheets()[i].getName()==sheetName) continue;
if(ss.getSheets()[i].isSheetHidden()) continue;
unhidden.push(ss.getSheets()[i].getName());
ss.getSheets()[i].hideSheet();
}
//Authentification
var params = {method:"GET",headers:{"authorization":"Bearer "+ ScriptApp.getOAuthToken()}};
var url="https://docs.google.com/spreadsheets/d/"+ss.getId()+"/export?format="+EXPORT_TYPE;
//Fetch URL of active spreadsheet
var fetch=UrlFetchApp.fetch(url,params);
//Get content as blob
var blob=fetch.getBlob();
var mimetype;
if(EXPORT_TYPE=="pdf"){
mimetype="application/pdf";
}else if(EXPORT_TYPE=="csv"){
mimetype="text/csv";
}else if(EXPORT_TYPE=="xlsx"){
mimetype="application/xlsx";
}else{
return;
}
//Send Email
var sheet1 = ss.getSheetByName('data').getRange("B1").getValue();
//var mesbody = sheet1.getRange("B1");
var subject = SHEET_NAME;
var nameWithoutExtension = SHEET_NAME.split(".")[0];
GmailApp.sendEmail('test@test.com',
subject,
sheet1,
{
attachments: [{
fileName: nameWithoutExtension + "."+EXPORT_TYPE,
content: blob.getBytes(),
mimeType: mimetype
}]
});
//Reshow the sheets
for(var i in unhidden){
ss.getSheetByName(unhidden[i]).showSheet();
}
//Delete the temporary sheet
ss.deleteSheet(tempSheet);
}
下拉列表所在的单元格
A3
位于哪一页?