无法设置全局变量

Unable to set a global variable

我想使用一个函数,我传递的参数应该一直设置为全局。我怎样才能做到这一点?这是我的代码:

function ReadExcelfunction($FileName,$SheetName,$RowNum,$ColNum,$Parameter)
{
    var $excel = _getExcel($FileName,$SheetName);
    var $excelData=$excel.getData();
    var $Parameter=$excelData[$RowNum][$ColNum];
    //_setGlobal($Parameter,$excelData[$RowNum][$ColNum]) -- Commented
}

现在假设我将参数传递为 -- File sheet 1 1 Name

我想要的是:name with the Value is stored as Global value.

之前我使用 _setGlobal($Parameter,$excelData[$RowNum][$ColNum]) 解决了这个问题,但是这个 API 已经被删除,现在我需要更改我的脚本。

我正在使用类似于 JavaScript 的 sahi 脚本语言。

一个可能的解决方案是从 sahi 脚本中动态地将值写入现有的 excel sheet 单元格,然后从 [=33= 的相应单元格中检索相同的值] sheet 来自另一个 sahi 脚本。

我用一个简单的文本文件做了类似的事情。
第一个文件

\ script 1
var $str = "Hello World";
var$filePath = "C:\temp\mystring.txt";
_writeToFile($str, $filePath);

第二个文件

\ script 2
var $filePath = "C:\temp\mystring.txt"; 
var $mystr = _readFile($filePath);

编辑: 扩展答案

--------------------------------
| VariableName | VariableValue |
--------------------------------
|    MyVar1    |  MyVar1Value  |
--------------------------------
|    MyVar2    |  MyVar2Value  |
--------------------------------
|    MyVar3    |  MyVar3Value  |
--------------------------------

创建 Sahi 函数以创建新的 excel sheet:

function _createExcelFile($fileName, $sheetName){
  if($sheetName == null || $sheetName == ""){
    $sheetName = "Sheet1";
  }
  _debug("Excel File Name :: " + $fileName);
  _debug("Excel File Sheet Name :: " + $sheetName);
  var $excelPoi = new Packages.net.sf.sahi.util.ExcelPOI($fileName, $sheetName);
  $excelPoi.createNew();
}

此外,您可以参考 Sahi Pro 的 _getExcel($filePath[, $sheetName]) API。您需要进行一些迭代才能完成工作。您可以根据需要读写数据。

注意:我只在最新版本的 Sahi Pro 中尝试过,即 6.1.0。

不需要使用_setGlobal,只需要在函数声明前声明一个var即可。例如,您可以声明一个新数组,然后声明 set/get 值,就像 _setGlobal.

// www.google.com used as start URL
var $globalVariable = new Array();

function SetGlobalVariable(key, newValue) {
  $globalVariable[key] = newValue;
}

SetGlobalVariable('inputValue', 'stack overflow');
_setValue(_textbox("q"), $globalVariable['inputValue']);