【问题标题】:Pass Google Sheets Cell Value To HTML将 Google 表格单元格值传递给 HTML
【发布时间】:2025-02-28 01:15:01
【问题描述】:

我正在尝试将值“assetCell”传递给 HTML 对话框。看起来很简单。 . .感谢您的任何帮助。

气体

 function Test(){
 var ss = SpreadsheetApp.getActiveSpreadsheet(); 
 var MySH = ss.getActiveSheet();
 var Assetcell = MySH.getRange("f8").getValue()
 var Assetcellb = MySH.getRange("f10").getValue()

 var t = HtmlService.createTemplateFromFile('vIndex'); // Modified
 t.AssetCell = Assetcell 
 t.AssetCell = Assetcellb

 html = t.evaluate().setWidth(400).setHeight(300); // Added

  SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
.showModalDialog(html, 'Hi');
 }

HTML

 <!DOCTYPE html>
 <html>
<head>
<base target="_top">
</head>
 <body>
 <?!= AssetCell => ?>
 </body>
 </html>

【问题讨论】:

    标签: html google-apps-script google-sheets cell


    【解决方案1】:

    这个修改怎么样?

    气体

    function Test(){
      var ss = SpreadsheetApp.getActiveSpreadsheet(); 
      var MySH = ss.getActiveSheet();
      var Assetcell = MySH.getRange("f8").getValue()
    
      var t = HtmlService.createTemplateFromFile('vIndex'); // Modified
      t.AssetCell = Assetcell; // Added
      html = t.evaluate().setWidth(400).setHeight(300); // Added
    
      SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
        .showModalDialog(html, 'Hi');
    }
    

    HTML

    <!DOCTYPE html>
    <html>
      <head>
        <base target="_top">
      </head>
      <body>
        <?!= AssetCell ?> => <!-- Modified -->
      </body>
    </html>
    

    参考:

    如果这对你没有用,我很抱歉。

    编辑:

    1。当你想把它们给&lt;?!= AssetCell ?&gt;

    您可以使用相同的 HTML。

    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var MySH = ss.getActiveSheet();
    var Assetcell1 = MySH.getRange("f8").getValue();
    var Assetcell2 = MySH.getRange("f10").getValue();
    
    var t = HtmlService.createTemplateFromFile('vIndex'); // Modified
    t.AssetCell = [Assetcell1, Assetcell2]; // Added
    html = t.evaluate().setWidth(400).setHeight(300); // Added
    
    SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
      .showModalDialog(html, 'Hi');
    

    2。当你想分别给&lt;?!= AssetCell1 ?&gt;&lt;?!= AssetCell2 ?&gt;

    气体
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var MySH = ss.getActiveSheet();
    var Assetcell1 = MySH.getRange("f8").getValue();
    var Assetcell2 = MySH.getRange("f10").getValue();
    
    var t = HtmlService.createTemplateFromFile('vIndex'); // Modified
    t.AssetCell1 = Assetcell1; // Added
    t.AssetCell2 = Assetcell2; // Added
    html = t.evaluate().setWidth(400).setHeight(300); // Added
    
    SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
      .showModalDialog(html, 'Hi');
    
    HTML
    <!DOCTYPE html>
    <html>
      <head>
        <base target="_top">
      </head>
      <body>
        <?!= AssetCell1 ?> => <!-- Modified -->
        <?!= AssetCell2 ?> => <!-- Modified -->
      </body>
    </html>
    

    【讨论】:

    • Tanaike - 请接受我的感谢;你的修改非常完美!!谢谢!
    • Tanaike - 如果我可以要求跟进。如果我想传递两个单元格的值怎么办。我试图修改您的代码 - 但我收到一个错误。如果不是强加的,能不能给个建议?我将用我尝试过的内容编辑我的原始代码。
    • @Tacitus 对不起。对于您的下一个问题,我没有关于“两个单元格”的信息。如果你想像var Assetcell = MySH.getRange("f8:f9").getValues(); 一样使用,脚本可以工作。那我可以问一下详细信息吗?
    • 对不起-我不清楚。如果我想传递 F8 和 F10 的值;请问如何调整代码?
    • @Tanaike。另一天,另一次你的代码拯救了像我这样的普通开发人员。这是一个非常优雅的解决方案。虽然我在黑暗中撞了几个小时后偶然发现了它。