function create_office_application(name) { try{ switch(name.toLowerCase()) { case "word" : return new ActiveXObject("Word.Application"); case "excel" : return new ActiveXObject("Excel.Application"); }; }catch(e){ var msg = e.name + ' : ' + e.message; if (msg.toLowerCase().indexOf("automation") > 0) { msg += '/n/nSolution:' + '/n 1. "Start menu" -> "Run" -> " regsvr32 scrrun.dll "' + '/n 2. Set the IE/'s security level to "Normal"' + '/n 3. Still have problems, please contact Moky ^^'; } alert(msg); return null; } return null; } function copy_obj_to_clipboard(obj) { var text_range = document.body.createTextRange(); text_range.moveToElementText(obj); text_range.select(); text_range.execCommand("Copy"); } /** * function : copy table elements into clipboard and build a microsoft excel doc * in : html element list * out : none * history : created by Moky @ 2006/09/05 */ function copy_to_excel() { var excel = create_office_application("Excel"); if (null == excel) return -1; var sheet = excel.Workbooks.Add().ActiveSheet; var curr_row = 1; for (var i = 0; i < arguments.length; i++, curr_row++) { copy_obj_to_clipboard(arguments[i]) sheet.Rows(curr_row).Cells(1).Select(); sheet.Paste(); if (arguments[i].rows) curr_row += arguments[i].rows.length; // set an empty line to separate each tables else curr_row += 1; } excel.Visible = true; } /** * function : copy table elements into clipboard and build a microsoft word doc * in : html element list * out : none * history : created by Moky @ 2006/09/05 */ function copy_to_word() { var word = create_office_application("Word"); if (null == word) return -1; var parags = word.Documents.Add("",0,1).Paragraphs; var curr_row = 0; for (var i = 0; i < arguments.length; i++) { copy_obj_to_clipboard(arguments[i]) var range = parags(parags.count).Range; range.Paste(); range.InsertParagraphAfter(); // insert a page separator to separate each tables } word.Application.Visible = true; //window.close(); } /* test: copy_to_excel(table1, table2, table3); copy_to_word(table1, table2, table3); */