Google apps script 如何将列从最小宽度调整为自动调整大小
我有一个有很多表格的电子表格。第一张图纸具有X个已使用列,其余图纸具有Y个已使用列。我想做的是在给定宽度和自动调整宽度(如果更大)之间调整列的大小 到目前为止,我有以下自动调整列大小的代码Google apps script 如何将列从最小宽度调整为自动调整大小,google-apps-script,google-sheets,width,Google Apps Script,Google Sheets,Width,我有一个有很多表格的电子表格。第一张图纸具有X个已使用列,其余图纸具有Y个已使用列。我想做的是在给定宽度和自动调整宽度(如果更大)之间调整列的大小 到目前为止,我有以下自动调整列大小的代码 function resizeColumns() { SpreadsheetApp.flush(); var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheets = ss.getSheets(); var lastColumnMain
function resizeColumns() {
SpreadsheetApp.flush();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
var lastColumnMain = sheets[0].getLastColumn();
var lastColumnUniversities = sheets[1].getLastColumn();
for (var i = 0; i < sheets.length; i++) {
var range;
if (i == 0) {
sheets[i].autoResizeColumns(1, lastColumnMain);
range = sheets[i].getRange(1, 1, 1, lastColumnMain);
} else {
sheets[i].autoResizeColumns(1, lastColumnUniversities);
range = sheets[i].getRange(1, 1, 1, lastColumnUniversities);
}
// Change width if less than 110 pixels
}
}
函数resizeColumns(){
SpreadsheetApp.flush();
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheets=ss.getSheets();
var lastColumnMain=sheets[0]。getLastColumn();
var lastcolumn=sheets[1]。getLastColumn();
对于(变量i=0;i
我想用一个范围来获得列宽,如果列宽太小,就从那里改变列宽,但我没有足够的视野来了解具体的操作方法。我也在寻找这个问题的答案,下面的脚本就是我目前使用的脚本。 首先,我创建了一个虚拟工作表,其标题行与我运行的报告完全相同,并将列设置为每个报告中所需的宽度。然后运行以下命令以获得与其索引成对的每一列的宽度,并将值推送到一个数组中,并在标题上方的行中设置它们
function colWidth() {
var WidthArry = [];
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Setup'); //.getSheets()[0];
var numColumns = 21; // sheet.getMaxColumns();
var columnPosition, width;
var i = 0;
while (i < numColumns) {
columnPosition = i + 1;
Logger.log(columnPosition);
width = sheet.getColumnWidth(columnPosition);
//push position and width to array
WidthArry.push([columnPosition, width]);
//set width value in cell above header col see image
sheet.getRange(1, columnPosition).setValue(width);
Logger.log(columnPosition);
i = i + 1;
}
Logger.log(WidthArry.toString());
return WidthArry.toString();
}//end function
我肯定有一种更优雅的方法可以做到这一点,但我想我会与其他正在寻找获取和设置列宽方法的人分享。我也在寻找这一方法的答案,下面的脚本就是我目前使用的脚本。 首先,我创建了一个虚拟工作表,其标题行与我运行的报告完全相同,并将列设置为每个报告中所需的宽度。然后运行以下命令以获得与其索引成对的每一列的宽度,并将值推送到一个数组中,并在标题上方的行中设置它们
function colWidth() {
var WidthArry = [];
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Setup'); //.getSheets()[0];
var numColumns = 21; // sheet.getMaxColumns();
var columnPosition, width;
var i = 0;
while (i < numColumns) {
columnPosition = i + 1;
Logger.log(columnPosition);
width = sheet.getColumnWidth(columnPosition);
//push position and width to array
WidthArry.push([columnPosition, width]);
//set width value in cell above header col see image
sheet.getRange(1, columnPosition).setValue(width);
Logger.log(columnPosition);
i = i + 1;
}
Logger.log(WidthArry.toString());
return WidthArry.toString();
}//end function
我肯定有一种更优雅的方法可以做到这一点,但我想我会与其他正在寻找获取和设置列宽的方法的人分享。sheet.getColumnWidth(1)
将获取第一列的宽度sheet.autoResizeColumns(startCol,numberOfCols)
将自动调整从startCol
开始的cols的大小,并将从开始的col调整numberOfCols
的大小。我看不到范围的任何用途。要手动将多个列调整为特定的宽度,我想您必须使用第一个函数使用循环逐个获取所有列的宽度,然后使用第二个函数设置宽度。sheet.getColumnWidth(1)
将获取第一列的宽度sheet.autoResizeColumns(startCol,numberOfCols)
将自动调整从startCol
开始的cols的大小,并将从开始的col调整numberOfCols
的大小。我看不到范围的任何用途。要手动将多个列调整为特定的宽度,我想您必须使用第一个函数使用循环逐个获取所有列的宽度,然后使用第二个函数设置宽度。