我有一个脚本可以将 Excel 文件与 google 工作表同步:
它工作正常,但是当我运行它并且工作表名称已经存在时,我收到错误。 如何解决此问题:在执行脚本之前覆盖或删除所有现有工作表? 我正在尝试发布代码,但总是出现错误。
// Importing all sheets from Excel to Google Sheets
function importAllExcelSheets() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var file = DriveApp.getFilesByName("Mijn Bestand.xlsm");
// Replace NAAM_VAN_HET_EXCEL_BESTAND.xlsx with the exact name of your Excel file.
if (file.hasNext()) {
var excelFile = file.next();
var blob = excelFile.getBlob();
var resource = {
title: "[Google Sheets] " + excelFile.getName(),
mimeType: MimeType.GOOGLE_SHEETS,
};
var newFile = Drive.Files.insert(resource, blob);
var newSpreadsheet = SpreadsheetApp.openById(newFile.id);
var sheets = newSpreadsheet.getSheets();
for (var i = 0; i < sheets.length; i++) {
var newSheet = sheets[i];
var data = newSheet.getDataRange().getValues();
var sheetName = newSheet.getName();
var targetSheet = sheet.copyTo(SpreadsheetApp.getActiveSpreadsheet());
targetSheet.setName(sheetName);
targetSheet.getRange(1, 1, data.length, data[0].length).setValues(data);
}
Browser.msgBox("Alle sheets uit het Excel-bestand zijn succesvol geïmporteerd.");
} else {
Browser.msgBox("Excel-bestand niet gevonden. Zorg ervoor dat het bestand bestaat en dat de naam correct is gespeld.");
}
}
尝试更换线路:
targetSheet.setName(sheetName);
与:
try { targetSheet.setName(sheetName) } catch(e) {}
如果电子表格已经具有给定名称,则不会重命名工作表。
或者,您可以尝试获取具有相同名称的工作表并重命名。像这样的东西:
try {
var temp_sheet = newSpreadsheet.getSheetByName(sheetName);
temp_sheet.setName(temp_sheet.getName() + "#");
} catch(e) {}