使用JavaScriptsearch和操作Excel数据

我有一个HTML Web表单,5个文本input和一个调用JavaScript函数的button。 它的function就是打开一个现有的Excel文件,find最后一个被填充的行,在它下面插入一个新的行,并将表单值放入一个单元格中。 然后保存并退出。

然而电子表格有5列以上,所以这个函数只能把数据放入A-E列。

function createData(){ var first = document.getElementById('A').value; var second = document.getElementById('B').value; var third = document.getElementById('C').value; var fourth = document.getElementById('D').value; var fifth = document.getElementById('E').value; var xlDown = -4121 var w =new ActiveXObject("Excel.Application"); w.Visible=true; w.Workbooks.Open("file:\\Form.xls"); objWorksheet = w.Worksheets(1); objRange = w.Range("A1"); objRange.End(xlDown).Activate; intNewRow = w.ActiveCell.Row + 1; for (i=1; i<10000; i++){ objWorksheet.Cells(intNewRow, 1) = first; objWorksheet.Cells(intNewRow, 2) = second; objWorksheet.Cells(intNewRow, 3) = third; objWorksheet.Cells(intNewRow, 4) = fourth; objWorksheet.Cells(intNewRow, 5) = fifth; } w.ActiveWorkbook.SaveAs("file:\\Form.xls"); w.Quit(); alert("The data has been added to the spreadsheet"); } 

我其实想要做的是这样的:

电子表格可能已经或可能不会在每行的列A-G中都有数据。 我希望函数在现有表格的B列中search“first”的文本值(如上定义)。 如果find,则将其他4个值插入到HK列的相应单元格中。 如果没有find,则将所有5个值插入B列中的“第一个”的新行,其余列在HK中。

我一直在搞这个很长时间,似乎无法破解它,尽pipe我知道这是可以做到的。

任何帮助将不胜感激!

好吧,我似乎find了试错的答案。 她不漂亮,但它的作品。 我会考虑在时间允许的情况下优化代码。

 function createData(){ var Name = document.getElementById('txtName').value; var first = document.getElementById('A').value; var second = document.getElementById('B').value; var third = document.getElementById('C').value; var fourth = document.getElementById('D').value; var fifth = document.getElementById('E').value; var xlDown = -4121 var w =new ActiveXObject("Excel.Application"); w.Visible=true; w.Workbooks.Open("file:\\Form.xls"); objWorksheet = w.Worksheets(1); objRange = w.Range("H3"); objRange.End(xlDown).Activate; intNewRow = w.ActiveCell.Row + 1; for (i=4; i<10; i++){ var a = objWorksheet.Cells(i,2); var b = a.Value; if(b == Name){ a.Activate; b = w.ActiveCell.Offset(0,6); intNew = w.ActiveCell.Row; objWorksheet.Cells(intNew, 8) = first objWorksheet.Cells(intNew, 9) = second objWorksheet.Cells(intNew, 10) = third objWorksheet.Cells(intNew, 11) = fourth objWorksheet.Cells(intNew, 12) = fifth } else{ objWorksheet.Cells(intNewRow, 8) = first objWorksheet.Cells(intNewRow, 9) = second objWorksheet.Cells(intNewRow, 10) = third objWorksheet.Cells(intNewRow, 11) = fourth objWorksheet.Cells(intNewRow, 12) = fifth } } w.ActiveWorkbook.SaveAs("file:\\\\Test.xls"); w.Quit(); }