Fra*_*ume 3 google-sheets google-apps-script google-slides google-sheets-api
我需要创建一个脚本,其功能与 MS Excel 中的“复制为图片”选项相同。我需要将 Google 表格中的某些表格复制为图片并粘贴到电子邮件(Gmail)中。我找到了一个可以将图表转换为图片并通过邮件发送的代码,但我还没有找到复制表格并将其粘贴为图片的代码。我想将表格粘贴为图片的原因是保留表格的格式,因为我知道用 HTML 构建表格不允许我保留条件格式和 HTML 缺乏的其他功能。
其他论坛中的人们建议使用 Sheets to Slides 脚本,获取表格数据所在的范围,并将其发送到 Google Slides。然后,在幻灯片中,将每张幻灯片的幻灯片下载为 .jpeg/.png 文件,然后将其添加到电子邮件正文中。我也不知道该怎么做。
您可以尝试以 HTML 格式复制表格以及条件格式。
function drawTable() {
var ss_data = getData();
var data = ss_data[0];
var background = ss_data[1];
var fontColor = ss_data[2];
var fontStyles = ss_data[3];
var fontWeight = ss_data[4];
var fontSize = ss_data[5];
var html = "<table border='1'>";
for (var i = 0; i < data.length; i++) {
html += "<tr>"
for (var j = 0; j < data[i].length; j++) {
html += "<td style='height:20px;background:" + background[i][j] + ";color:" + fontColor[i][j] + ";font-style:" + fontStyles[i][j] + ";font-weight:" + fontWeight[i][j] + ";font-size:" + (fontSize[i][j] + 6) + "px;'>" + data[i][j] + "</td>";
}
html += "</tr>";
}
html + "</table>"
MailApp.sendEmail({
to: Session.getActiveUser().getEmail(),
subject: "Spreadsheet Range",
htmlBody: html
})
}
function getData(){
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Raw").getDataRange();
var background = ss.getBackgrounds();
var val = ss.getDisplayValues();
var fontColor = ss.getFontColors();
var fontStyles = ss.getFontStyles();
var fontWeight = ss.getFontWeights();
var fontSize = ss.getFontSizes();
return [val,background,fontColor,fontStyles,fontWeight,fontSize];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5918 次 |
| 最近记录: |