如何用App Script复制Google Sheet区域并按截图样式发送邮件
Google Apps Script:从Sheet选中区域发送带样式邮件
以下是实现需求的完整脚本,包含选中区域获取、HTML样式表格生成和邮件发送功能:
function sendSelectedRangeAsStyledEmail() { // 获取当前活动Sheet和选中区域 const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const range = sheet.getActiveRange(); const values = range.getValues(); // 无选中内容则终止执行 if (values.length === 0) return; // 构建符合样式的HTML表格(可根据截图调整样式参数) let htmlTable = '<table style="border-collapse: collapse; width: 100%; border: 1px solid #ccc;">'; // 处理表头行 htmlTable += '<tr style="background-color: #f0f0f0;">'; values[0].forEach(cell => { htmlTable += `<th style="border: 1px solid #ccc; padding: 8px; text-align: left;">${cell}</th>`; }); htmlTable += '</tr>'; // 处理数据行 for (let i = 1; i < values.length; i++) { htmlTable += '<tr>'; values[i].forEach(cell => { htmlTable += `<td style="border: 1px solid #ccc; padding: 8px; text-align: left;">${cell}</td>`; }); htmlTable += '</tr>'; } htmlTable += '</table>'; // 邮件配置(按需修改收件人、主题等) const recipient = 'your-recipient@example.com'; const subject = 'Sheet选中区域数据'; const body = '以下是Sheet中选中的区域数据:<br><br>' + htmlTable; // 发送HTML格式邮件 GmailApp.sendEmail({ to: recipient, subject: subject, htmlBody: body }); // 执行完成提示 SpreadsheetApp.getUi().alert('邮件已发送!'); }
关键说明:
- 选中区域获取:通过
getActiveRange()获取当前用户选中的单元格范围,getValues()提取区域内所有数据。 - HTML样式定制:代码中的表格样式(边框、背景色、内边距等)可根据你的截图样式调整,只需修改
<table>、<tr>、<th>、<td>标签内的style属性即可。 - 邮件发送:使用
GmailApp.sendEmail()发送HTML格式邮件,确保邮件内容呈现表格样式。 - 权限配置:首次执行脚本时,需要授权脚本访问你的Google Sheet和Gmail服务。
使用步骤:
- 打开目标Google Sheet,点击菜单栏「扩展程序」→「Apps Script」。
- 将上述代码粘贴到脚本编辑器中,修改
recipient为实际收件人邮箱。 - 保存脚本,点击运行按钮执行
sendSelectedRangeAsStyledEmail函数。 - 按照提示完成权限授权,即可发送带样式的邮件。
内容的提问来源于stack exchange,提问作者Robbie Freeman
相关产品推荐
相关产品推荐

