在Javascript代码中重复元素

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

<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. 在电子表格的末尾重复最后一个单选button值几次。
  2. 当用户第二次使用该程序时,先前的数据被覆盖。

下载示例(确保更改文件path):

  • http://www.filedropper.com/new_3

我相信第二个问题是由于这是在你的代码两次:

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

一旦你有你的数据数组,你不应该循环两遍。

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

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

你说的实质是“在这里select这个区域” 而不是 “从这个区域开始”。 不幸的是,我不知道你需要的代码,但这是我的解释。