Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 如何将列从最小宽度调整为自动调整大小_Google Apps Script_Google Sheets_Width - Fatal编程技术网

Google apps script 如何将列从最小宽度调整为自动调整大小

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

我有一个有很多表格的电子表格。第一张图纸具有X个已使用列,其余图纸具有Y个已使用列。我想做的是在给定宽度和自动调整宽度(如果更大)之间调整列的大小

到目前为止,我有以下自动调整列大小的代码

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
的大小。我看不到范围的任何用途。要手动将多个列调整为特定的宽度,我想您必须使用第一个函数使用循环逐个获取所有列的宽度,然后使用第二个函数设置宽度。