在导入 CSV 数据之前使用 Sheet clearContents 时,结果为空白 Sheet
When using Sheet clearContents prior to importing CSV data, the result is a blank Sheet
晚安,
我有一个 Google Sheet,其值在 Sheet1 上。
我想使用 Google Apps 脚本从 Sheet1 中删除所有当前值并从 CSV 文件导入所有值。
为了导入 CSV 数据,我使用了 https://tanaikech.github.io/2019/08/28/benchmark-importing-csv-data-to-spreadsheet-using-google-apps-script/#table1 中的代码。这在我的其他脚本中运行得非常好且速度很快(谢谢 Tanaike)。
对于此脚本,我添加了一些代码以在导入 CSV 数据(超过 9000 行数据)之前清理 Sheet1,但结果是脚本完成后 Sheet 为空。我做错了什么(我是 Google Apps 脚本的新手)
function importCSV2cleanSheet(){
var app = SpreadsheetApp.getActive();
var ws = app.getSheetByName('Sheet1');
ws.clearContents();
var folder = DriveApp.getFolderById('csvfolderid');
var files = folder.getFiles();
myFile = 'sourcefilename';
while (files.hasNext()){
file = files.next();
if (file == myFile){
var myID = []
myID.push(file.getId());
}
}
var data = DriveApp.getFileById(myID).getBlob().getDataAsString();
var sheetId = SpreadsheetApp.openById('destinationsheet')
.getSheets()[1]
.getSheetId();
var resource = {
requests: [
{
pasteData: {
data: data,
coordinate: { sheetId: sheetId },
delimiter: ","
}
}
]
};
Sheets.Spreadsheets.batchUpdate(resource, 'destinationsheet');
}
你可以尝试添加这个吗?
ws.clearContents();
SpreadsheetApp.flush();
晚安,
我有一个 Google Sheet,其值在 Sheet1 上。 我想使用 Google Apps 脚本从 Sheet1 中删除所有当前值并从 CSV 文件导入所有值。
为了导入 CSV 数据,我使用了 https://tanaikech.github.io/2019/08/28/benchmark-importing-csv-data-to-spreadsheet-using-google-apps-script/#table1 中的代码。这在我的其他脚本中运行得非常好且速度很快(谢谢 Tanaike)。 对于此脚本,我添加了一些代码以在导入 CSV 数据(超过 9000 行数据)之前清理 Sheet1,但结果是脚本完成后 Sheet 为空。我做错了什么(我是 Google Apps 脚本的新手)
function importCSV2cleanSheet(){
var app = SpreadsheetApp.getActive();
var ws = app.getSheetByName('Sheet1');
ws.clearContents();
var folder = DriveApp.getFolderById('csvfolderid');
var files = folder.getFiles();
myFile = 'sourcefilename';
while (files.hasNext()){
file = files.next();
if (file == myFile){
var myID = []
myID.push(file.getId());
}
}
var data = DriveApp.getFileById(myID).getBlob().getDataAsString();
var sheetId = SpreadsheetApp.openById('destinationsheet')
.getSheets()[1]
.getSheetId();
var resource = {
requests: [
{
pasteData: {
data: data,
coordinate: { sheetId: sheetId },
delimiter: ","
}
}
]
};
Sheets.Spreadsheets.batchUpdate(resource, 'destinationsheet');
}
你可以尝试添加这个吗?
ws.clearContents();
SpreadsheetApp.flush();