Javascript代码中的重复元素

深的

我创建了一个.hta表单,该表单连接到excel文件。输入的数据将粘贴到电子表格中。这段代码有两个问题,我似乎无法弄清楚我在做什么错。

<html>
<head>
    <script>
        function test() {
            var excel = new ActiveXObject("Excel.Application");
            excel.visible = true;
            var wb = excel.Workbooks.Open("C:\\Users\\Dane\\Desktop\\1.xlsx");
            var optionValue;
            var s = Form1.select1;
            var data = [];
            var sCell = wb.sheets("sheet1").cells(1,1).currentregion.offset(1);

            data.push(Form1.text1.value);
            data.push(Form1.text2.value);
            data.push(Form1.text3.value);
            data.push(Form1.text4.value);
            data.push(s.options[s.selectedIndex].text);
            data.push(Form1.text5.value);
            data.push(Form1.text6.value);
            data.push(Form1.text7.value);


            for(var i=0;i<Form1.option1.length;i++) {
                if(Form1.option1[i].checked){
                    data.push(Form1.option1[i].value);
                    break;
                }
            }

            for(var i=0; i<data.length;i++) {
                sCell.offset(0,i) = data[i];            
            }



            for(var i=0;i<Form1.option2.length;i++) {
                if(Form1.option2[i].checked){
                    data.push(Form1.option2[i].value);
                    break;
                }
            }

            for(var i=0; i<data.length;i++) {
                sCell.offset(0,i) = data[i];            
            }

            wb.close(true);
        }
    </script>
</head>
<body>
<form name="Form1">

    <p>
    Entry 1: <input name="text1" type="text" size="10" /><br />
    Entry 2: <input name="text2" type="text" size="10" /><br />
    Entry 3: <input name="text3" type="text" size="10" /><br />
    Entry 4: <input name="text4" type="text" size="10" /><br />

    Selection 1: <select name="select1">
        <option value="1">A</option>
        <option value="2">B</option>
        <option value="3">C</option>
        <option value="4">D</option>
        <option value="5">E</option>
        <option value="6">F</option>
    </select> <br />

    Entry 5: <input name="text5" type="text" size="10" /><br />
    Entry 6: <input name="text6" type="text" size="10" /><br />
    Entry 7: <input name="text7" type="text" size="10" /><br />

    Question 1<br />
    Yes : <input type="radio" name="option1" value="Yes"><br />
    No : <input type="radio" name="option1" value="No"><br />
    N/A : <input type="radio" name="option1" value="N/A"><br />

    Question 2<br />
    Yes : <input type="radio" name="option2" value="Yes"><br />
    No : <input type="radio" name="option2" value="No"><br />
    N/A : <input type="radio" name="option2" value="N/A"><br />


    <input type="button" value="Save to Excel" onclick="test()" />
</form>
</body>

问题:

  1. 在电子表格的末尾,最后一个单选按钮的值重复了几次。
  2. 当用户第二次使用该程序时,先前的数据将被覆盖。

要下载的样本(请确保更改文件路径):

长流

我相信是第二个问题,因为这在您的代码中两次:

for(var i=0; i<data.length;i++) {
            sCell.offset(0,i) = data[i];            
        }

一旦有了数据数组,就不必循环两次。

对于第一个问题,我相信它是由以下这一行创建的:

var sCell = wb.sheets("sheet1").cells(1,1).currentregion.offset(1);

您实质上是在说“在此选择该区域”,而不是“从此区域开始”。不幸的是,我不知道您需要的代码,但这是我的解释。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TOP 榜单

热门标签

归档