Вот образец как ваш запрос
function UntitledMacro() {
var spreadsheet = SpreadsheetApp.getActive();
Logger.log("1");
var allsheets = spreadsheet.getSheets();
//In this sample I just to check 1 sheet only
//so temporarily the for loop is commented, and column header is in row 1
//and will delete all header without data and all column without header
for (var sht in allsheets){
var sheet=spreadsheet.getSheetByName(allsheets[shtNo].getSheetName());
Logger.log("2");
var maxColumns = sheet.getMaxColumns();
var lastColumn = sheet.getLastColumn();
var lastrow = sheet.getLastRow();
if (maxColumns-lastColumn != 0){
if (maxColumns>lastColumn)
{
Logger.log("3");
sheet.deleteColumns(lastColumn+1, maxColumns-lastColumn);
}
for (a=0; a<lastColumn; a++)
{
var lstRange1 = sheet.getRange(1,lastColumn - a );
if (lstRange1.getValue()=='')
{
sheet.deleteColumns(lastColumn - a +1);
}
else
{
var lstRange2= sheet.getRange(lastrow, lastColumn - a );
if (lstRange2.getValue()=='')
{
var rsltRange=lstRange2.getNextDataCell(SpreadsheetApp.Direction.UP);
if (rsltRange.getRow()==1) sheet.deleteColumns(lastColumn - a +1,1);
}
}
}
}
}
};
Обновление:
function UntitledMacro3() {
var spreadsheet = SpreadsheetApp.getActive();
var allsheets = spreadsheet.getSheets();
for (var shtNo in allsheets){
var sheet=spreadsheet.getSheetByName(allsheets[shtNo].getSheetName());
var maxColumns = sheet.getMaxColumns();
var lastColumn = sheet.getLastColumn();
var lastrow = sheet.getLastRow();
if (maxColumns-lastColumn != 0){
if (maxColumns>lastColumn)
{
sheet.deleteColumns(lastColumn+1, maxColumns-lastColumn);
}
}
if (lastColumn>0)
{
for (a=0; a<lastColumn; a++)
{
var lstRange1 = sheet.getRange(1,lastColumn - a );
if (lstRange1.getValue()=='')
{
sheet.deleteColumns(lastColumn - a );
}
else
{
var lstRange2= sheet.getRange(lastrow, lastColumn - a );
if (lstRange2.getValue()=='')
{
var rsltRange=lstRange2.getNextDataCell(SpreadsheetApp.Direction.UP);
if (rsltRange.getRow()==1 && (lastColumn - a )<=maxColumns) sheet.deleteColumns(lastColumn - a ,1);
}
}
}
}
}
};
Теперь для всех листов. Запустите скрипт, затем после окончания sh, пожалуйста, нажмите Ctrl + Enter, чтобы показать журнал, пожалуйста, сообщите содержимое журнала
до:
pict После: