まず、エチケットの悪さや愚かな質問についてお詫びします。これは、Googleスプレッドシートでのスクリプト作成への私の最初の進出であり、ExcelのVBAよりも苦労していると言わざるを得ません。とにかく私の問題に。
4列53行のスプレッドシートがあります。列は保持されます。週番号(例:33)、週開始日(例:13/08/12)、労働時間(例:31:15:00)、および支払期日(例:$ 150.00)。最初の行には見出しがあり、2行目から53行目はその年の週です。簡単すぎるキャンピーズ。これで、実行時に1週間の要約メールを送信するスクリプトを作成できました。私のコードは次のとおりです。
function sendEmail() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Summary");
var startRow = 2; // First row of data to process
var numRows = sheet.getLastRow()-1; // Number of rows to process
// Fetch the range of cells A2:B3
var dataRange = sheet.getRange(startRow, 1, numRows, sheet.getLastColumn());
// Fetch values for each row in the Range.
var data = dataRange.getValues()
//Logger.log(data)
for (i in data) {
var row = data[i];
var date = new Date();
var sheetDate = new Date(row[1]);
Sdate=Utilities.formatDate(date,'GMT-1000','w')
SsheetDate=Utilities.formatDate(sheetDate,'GMT-1000', 'w')
//Logger.log(Sdate+' =? '+SsheetDate)
if (Sdate == SsheetDate){
var emailAddress = row[0]; // First column
var weeknum = row[0];
var week = row[1];
var hours = row[2];
var pay = row[3];
var subject = "Timesheet Report for Week " + weeknum;
MailApp.sendEmail('me@myemail.com',
subject,
"Chris, \n\nBased on the timesheet data you have submitted last week So and So has recorded the following hours and should be due the calculated pay.\n\n" +
"Week Beginning; " + week +
"\n\nTotal Hours Worked For The Week; " + hours +
"\n\nPay Due For The Week; " + pay);
//Logger.log('SENT :'+emailAddress+' '+subject+' '+message)
}
}
}
今の私の問題は、週に「8月13日月曜日」を表示し始めたいことです。合計時間は時間を表示し、Payは通貨として表示します。ただし、スクリプトはスプレッドシートのフォーマットを保持しません。