我想使用一个函数,我传递的参数应该始终设置为全局。我怎样才能做到这一点?这是我的代码:
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
。
我想要的是:带有值的名称存储为全局值。
之前我使用_setGlobal($Parameter,$excelData[$RowNum][$ColNum])
解决了目的,但此API已被删除,现在我需要更改我的脚本。
我正在使用类似于JavaScript的sahi脚本语言。
答案 0 :(得分:0)
一个可能的解决方案是在运行中从sahi脚本中将值写入现有的Excel工作表单元格,然后从另一个sahi脚本中的excel表单的相应单元格中检索相同的值。
我使用简单的文本文件做了类似的事情 第一个文件
\\ 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工作表:
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。
答案 1 :(得分:0)
您不需要使用_setGlobal,您只需要在函数声明之前声明一个var。例如,您可以声明一个新数组,然后像_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']);