如何在JavaScript电子表格中初始化=SUM字段

如何在JavaScript电子表格中初始化=SUM字段,javascript,sum,spreadsheet,Javascript,Sum,Spreadsheet,我正在使用JavaScript创建一个电子表格,无法确定如何计算=SUM字段。我的代码将生成一个数组ex(=SUM,A1,B1),但我不知道如何更改A1和B1的属性以获取它们关联字段的值 function saveCell() { // get the text the user just typed into the text box var cellText = document.getElementById("txtCell").value; var tokenArray = getFo

我正在使用JavaScript创建一个电子表格,无法确定如何计算
=SUM
字段。我的代码将生成一个数组ex
(=SUM,A1,B1)
,但我不知道如何更改A1和B1的属性以获取它们关联字段的值

function saveCell()
{
// get the text the user just typed into the text box
var cellText = document.getElementById("txtCell").value;

var tokenArray = getFormula(cellText);

// if null... this isn't a formula
if (tokenArray != null)
{
    alert("This is a formula to sum from " + tokenArray[1] + " to " + tokenArray[2]);

}
else
    currentRef.innerHTML = cellText;

    ssArray[currentRow - 1][currentCol - 1] = cellText;
}//end saveCell()


// determines if user entered a formula such as =SUM(A1:B1)
// returns an array with cell coordinates

function getFormula(tbValue)
{

// this is a regular expression pattern which is intended to
// split the string (formula) on any of ":" "(" or ")"
var pattern = /[:|\(|\)]/;

// do the split ... ar is an array
var ar = tbValue.split(pattern);

// convert =sum to upper case
var sum = ar[0].toUpperCase();
var attOne = ar[1];
var attTwo = ar[2];

if (ar.length < 3)
    return null;
else if (sum != "=SUM")
    return alert("The function '"+sum+"' is not supported...");
else
{
    //return an array of strings
    return ar;
    }
}//end getFormula()
函数saveCell()
{
//获取用户刚刚在文本框中键入的文本
var cellText=document.getElementById(“txtCell”).value;
var tokenArray=getFormula(cellText);
//如果为空…这不是一个公式
if(令牌数组!=null)
{
警报(“这是一个从“+tokenArray[1]+”到“+tokenArray[2]”求和的公式);
}
其他的
currentRef.innerHTML=cellText;
ssArray[currentRow-1][currentCol-1]=cellText;
}//结束存储单元()
//确定用户是否输入了公式,例如=总和(A1:B1)
//返回包含单元格坐标的数组
函数getFormula(tbValue)
{
//这是一个正则表达式模式,旨在
//在“:”(“或”)中的任何一个上拆分字符串(公式)
变量模式=/[:|\(|\)]/;
//进行拆分…ar是一个数组
var ar=tbValue.split(模式);
//convert=将总和转换为大写
var sum=ar[0]。toUpperCase();
var attOne=ar[1];
var attTwo=ar[2];
如果(ar长度<3)
返回null;
否则,如果(总和!=“=总和”)
返回警报(“不支持函数“+sum+”);
其他的
{
//返回字符串数组
返回ar;
}
}//结束getFormula()

Hmm如果我理解得很好,A1和B1应该是存储值的元素的de“id”,因此您应该进入这些元素并获取值

在这种情况下,可以使用
document.getelementbyid(attOne).value
获取A1字段中的值


虽然我对你的问题有点迷惑不解,但也许你应该发布电子表格的结构。

是的,我正在尝试获取存储在A1和B1中的值,但由于它们存储在一个数组中,我需要将a从1和B从1中拆分,以便能够使用它们访问行[1]列[a]。此外,我正在使用VisualStudio和JavaScript的半新版本。我不明白你是从哪里得到“dom”的。我明白了,文档对象模型(dom)是一个应用程序编程接口(API),用于有效的HTML和格式良好的XML文档。你可以在这里阅读关于DOM的全部信息,我刚刚意识到我有一个错误,我没有写文档,而是写了DOM,对此很抱歉。我想是的,不用担心。但是,document.getelementbyid()将无法处理此问题,因为我需要首先从1中拆分A并访问数组值。。。我可能忘了提一下,我已经完全从new创建了电子表格,所以我将所有字段存储到了一个数组中。A和1将用于访问行[1]列[A],因此A1到目前为止还没有值。如果有帮助的话,我可以将我的整个VS文件发送给你。当使用javascript编程时,你应该改变一下想法,首先你可以在每个字段中添加一个id,使用该id(可以是A1B1)访问A1B1字段。