Javascript 如何将应用程序脚本的可视化表转换为电子表格google应用程序脚本代码

Javascript 如何将应用程序脚本的可视化表转换为电子表格google应用程序脚本代码,javascript,google-apps-script,Javascript,Google Apps Script,我有一个HTML web应用程序,其中我已将电子表格转换为HTML表格。现在我想把这个HTML表格转换成电子表格。是否可以将其转换回电子表格 你可以说我可以直接使用电子表格,但问题是我应用了一些过滤器。现在,每当我对特定列应用过滤器时,它都会显示出来,因此现在我希望使用谷歌应用程序脚本将列移动到新的电子表格中 这是我的表格,如何使用谷歌应用程序脚本将此表格转换为电子表格 在本例中,我使用了两张图纸,一张图纸名为sht2tbl,另一张图纸名为tbl2sht。在运行代码时,您需要准备好这两个组件 以

我有一个HTML web应用程序,其中我已将电子表格转换为HTML表格。现在我想把这个HTML表格转换成电子表格。是否可以将其转换回电子表格

你可以说我可以直接使用电子表格,但问题是我应用了一些过滤器。现在,每当我对特定列应用过滤器时,它都会显示出来,因此现在我希望使用谷歌应用程序脚本将列移动到新的电子表格中

这是我的表格,如何使用谷歌应用程序脚本将此表格转换为电子表格


在本例中,我使用了两张图纸,一张图纸名为sht2tbl,另一张图纸名为tbl2sht。在运行代码时,您需要准备好这两个组件

以下是Sheet 2表格和Table 2 Sheet.gs:

function sheetToTable()//This produces a modeless dialog
{
  var s='';
  s+='<table width="100%">';
  var ss=SpreadsheetApp.getActiveSpreadsheet();
  var sht=ss.getSheetByName('sht2tbl');
  var rng=sht.getDataRange();
  var rngA=rng.getValues();
  for(var i=0;i<rngA.length;i++)
  {
    s+='<tr>';
    for(var j=0;j<rngA[0].length;j++)
    {
      if(i==0)
     {
        s+='<th id="cell' + i + j + '">' + rngA[i][j] + '</th>';//put ids in each th
      }
      else
      {
        s+='<td id="cell' + i + j + '">' + rngA[i][j] + '</td>';//put ids in each td
       }
    }
    s+='</tr>';
  }
  s+=' </body></html>'
  var html=HtmlService.createHtmlOutputFromFile('html2body');//create output from file
  html.append(s);//and append s for the rest
  SpreadsheetApp.getUi().showModelessDialog(html, 'Sheet to Table')
}

function getParams()//this gives the client side array dimensions
{
  var ss=SpreadsheetApp.getActiveSpreadsheet();
  var sht=ss.getSheetByName('sht2tbl');
  var rng=sht.getDataRange();
  var A=[];
  A.push(rng.getWidth());
  A.push(rng.getHeight());
  return (A);//range width and height in an array
}

function putData(data)//this gets cell contents from the client side and displays them on another sheet named 'tbl2sht'
{
  var ss=SpreadsheetApp.getActiveSpreadsheet();
  var sht=ss.getSheetByName('tbl2sht');
  var h=data.length;
  var w=data[0].length;
  var rng=sht.getRange(1,1,h,w);//create a range properly dimensioned
  rng.setValues(data);//use setValues to load sheet
}
函数sheetToTable()//这将生成一个无模式对话框
{
var s='';
s+='';
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sht=ss.getSheetByName('sht2tbl');
var rng=sht.getDataRange();
var rngA=rng.getValues();

对于(var i=0;我将加入堆栈溢出!我已编辑了您的问题说明,以便让其他人更清楚。我已修复了许多语法错误和格式问题。此外,请在您的问题中添加一些相关代码,以便其他开发人员可以更好地帮助您解决此问题
<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script>
    $(function() {

    google.script.run
      .withSuccessHandler(getCellValues)//returns to get values from client side
      .getParams();//get width and height of data array
     });
      function getCellValues(A)
      {
        var w=A[0];
        var h=A[1];
        var data=[];
        for(var i=0;i<h;i++)
        {
          data[i]=[];
          for(var j=0;j<w;j++)
          {
             var s='#cell' + Number(i) + Number(j);
             data[i][j]=$(s).text();//use jquery text to get th and td values          
          }
        }
        google.script.run
          .putData(data);//send data to server side to load data in tbl2sht
      }
      console.log('My Code');//helps me to find code in chrome console
    </script>
  </head>
  <body>