我有一个HTML web表单,有5个文本输入和一个调用JavaScript函数的按钮。该函数将打开一个现有的Excel文件,找到最后填充的行,在该行下面插入新行,并将表单值放入其中,每个单元格一个值。然后保存并退出。
然而,电子表格有超过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列中搜索"first“的文本值(如上所定义)。如果找到,请在H-K列的相应单元格中插入其他4个值。如果找不到,则将所有5个值插入到B列的新行中,其余的插入H-K列。
我已经用了很长时间了,似乎无法破解它,尽管我知道它是可以做到的。
任何帮助都将不胜感激!
发布于 2011-11-25 09:09:52
嗯,似乎我通过反复试验找到了答案。她不漂亮,但很管用。我将在时间允许的情况下优化代码。
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();
}https://stackoverflow.com/questions/8250289
复制相似问题