पर काम नहीं कर रहा है मेरे पास Google App Script HtmlService
और HTML फॉर्म से विकसित एक वेब ऐप है, जो SpreadsheetApp
का उपयोग करके Google ड्राइव में एक्सेल शीट पॉप्युलेट कर रहा है। और एक्सेल फ़ाइल के रूप में डेटा डाउनलोड करने के लिए एक और अनुभाग ContentService
पर कॉल कर रहा है।Google App Script ContentService DownloadAsFile
function doGet(e) {
// Read excel sheet
//getAppFile();
// Render the application from HTML template
return HtmlService.createTemplateFromFile('index').evaluate()
.setTitle('Go Smart')
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
}
function downloadDoubleQuateCsvFile() {
var sheetId = PropertiesService.getScriptProperties().getProperty('sheetId');
var ss = SpreadsheetApp.openById(sheetId).getActiveSheet();
//var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var maxColumn = ss.getLastColumn();
var maxRow = ss.getLastRow();
var data = ss.getRange(1, 1, maxRow, maxColumn).getValues();
if (data.length > 1) {
var csv = "";
for (var row = 0; row < data.length; row++) {
for (var col = 0; col < data[row].length; col++) {
if (data[row][col].toString().indexOf(",") != - 1) {
data[row][col] = "\"" + data[row][col] + "\"";
}
}
if (row < data.length - 1) {
csv += data[row].join(",") + "\r\n";
} else {
csv += data[row];
}
}
csvFile = csv;
}
return makeCSV(csvFile);
}
function makeCSV(csvString) {
var csvFileName = 'test.csv';
var output = ContentService.createTextOutput();
output.setMimeType(ContentService.MimeType.CSV);
output.setContent(csvString);
output.downloadAsFile(csvFileName);
return output;
}
यह स्क्रिप्ट सिर्फ कंसोल में शीट हेडर विवरण ऑब्जेक्ट दे रही है और यह किसी भी फ़ाइल को डाउनलोड नहीं कर रही है।
<button class="btn btn-success btn-sm" onclick="google.script.run.downloadDoubleQuateCsvFile()">Export</button>
दूसरे फ़ंक्शन में वापसी जोड़ने के बाद, मुझे इस तरह की त्रुटि मिल रही है।
Error: The script completed but the returned value is not a supported return type.
नोट: मैं) डेटा
साथ ड्राइव में एक्सेल फ़ाइल
यह केवल प्रकाशित यूआरएल से अनुरोध किए गए डूगेट() या डूपोस्ट() से लौटने पर काम करेगा। –
@SpencerEaston doGet से() मैं पहले से ही HtmlService बना रहा हूं और लौट रहा हूं। क्या इसे हासिल करने का कोई और तरीका है? – devo
मुझे आपके उदाहरण में doGet() नहीं दिख रहा है। और आपके उदाहरण में btw आपने makeCSV (csvFile) 'वापस' नहीं किया था। –