0
스프레드 시트에서 추출한 표와 차트가있는 사람들의 목록으로 전자 메일을 보내고 싶습니다.메일 스프레드 시트 데이터
이렇게하는 것은 수동으로 간단합니다. 범위를 클립 보드로 복사하고 메시지 편집기에 붙여 넣습니다. 차트와 유사합니다. 그러나 제 응용 프로그램에는 여러 차트와 범위가 필요하므로 처리 시간이 오래 걸리며 오류가 발생하기 쉽습니다. 다음과 같이
나는 메시지를 구축하려고 노력 해요 : 코드의 복잡성이 같은 간단한 작업을 수행 할 수 있습니다 자신의 접근 방식
function makeMail(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var dataTable = ss.getSheetByName("calc")
.getRange("B116:I125")
.getDataTable(true);
var sData = ss.getSheetByName("Results")
.getRange("A5:F22")
.getValues();
var chartImage = Charts.newLineChart()
.setTitle('Top Teams')
.setDataTable(dataTable)
.build()
.getAs('image/png'); //get chart as image
var mB = "<h2> Testing Mail </h2>";
mB += "<style> table,th,td { border:1px solid black;} </style>";
mB += " <table> <tr> <th>Team Name</th> <th> Owners </th> <th>This Week$</th>"
mB += " <th>Rank</th><th>YTD pts</th><th>YTD Rank</th></tr></tr>";
for (var i=0;i<6;i++){
mB += "<td> " + sData[2][i] + "</td>";
mB += "</tr>";
}
mB += "</table>";
MailApp.sendEmail({
to: "[email protected]",
subject: "Chart",
htmlBody: mB,
inlineImages:{
chartImg: chartImage
}
});
}
주요 문제와 방식에 문제가 보인다 HTML은 메일러에 의해 렌더링됩니다. 표의 스타일 태그는 효과가 없습니다.
이 문제에 접근하는 더 좋은 방법이 있습니까?
스타일을 테이블 태그 자체에 삽입해야합니다 (예 :
Mogsdad의이 흥미로운 글을 참고하십시오 : http://stackoverflow.com/questions/20570361/how-to-use-css-in-google-scripts-specifically-to-design-hyperlink-button/20572401#20572401 –
@ Serge는 그것을 얻었다. 위의 내용을 답변으로 게시하면 대답으로 표시됩니다. – MalcL
답변
메모에 이미 지정된 스타일 외에도 미리 만든 차트를 사용하고 필요에 따라 범위를 변경하여 속도를 높일 수 있습니다. 명명 된 범위를 사용하면 코드를 수정하는 대신 스프레드 시트에서 범위를 편집하여 읽기 및 유지 관리를 쉽게 할 수 있습니다.
출처
2014-04-03 19:03:33
나는 명명 된 범위에 대한 의견에 동의합니다. 대화 형으로 작성된 차트를 사용해 보았습니다. 오래된 시트는 횡설수설하고 새로운 시트는 아무것도 전달하지 못합니다. 테스트를 위해 다음을 사용했습니다 : – MalcL
다음 테스트를 사용했습니다 : function sendChart() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var chartsheet = ss.getSheetByName ("결과"); var chart = chartsheet.getCharts(); var chartImage = chart [0] .getAs ("image/png"); MailApp.sendEmail ({행 "[email protected]" 제목 : "테스트 차트" 에서는 HTMLBody "
" inlineImages { chartImg : chartImage }}); } – MalcL
나는 돌아가서 이것을 다시 보았다. 차트를 전자 메일로 보내려면 "게시"해야한다는 것을 알았습니다. 이제는 "새로운"시트에서 작동합니다. – MalcL
관련 문제