以下是重构后的代码,并保持了段落结构:
```javascript
// 导出报表
function ExportTable(title, flag, tableId, isAddedFoot) {
try {
var $curTb = null;
if (flag != '') {
$curTb = $('#' + flag + '_' + tableId);
} else {
$curTb = $('#' + tableId);
}
var curTbl = $curTb[0];
var Lenc = curTbl.rows(0).cells.length;
var dateTime = $('#' + flag + '_txtBeginDateCtl').val();
var year = new Date().getYear();
var ds = null;
if (dateTime.indexOf('-') >= 0) {
ds = dateTime.split('-');
year = ds[0];
} else if (dateTime.indexOf('/') >= 0) {
ds = dateTime.split('/');
year = ds[0];
}
var tbTitle = '
' + title + '( ' + year + '-' + curTbl.rows(0).cells(1).innerText + ' 到 ' + year + '-' + curTbl.rows(0).cells(Lenc - 1).innerText + ' ) | ';
if (isAddedFoot === false){
$curTb.prepend(tbTitle);
}else{
var foot = document.createElement("tfoot"); //创建表尾元素,如果不需要可以注释掉这一行代码。
foot.innerHTML=$curTb[0].outerHTML; //将表格的全部内容放到表尾中。
$curTb.after(foot); //在原表格后添加表尾。如果需要放在表格内部可以将这一行代码改为 $curTb.append(foot);。
}
} catch (error) {} //捕获错误,防止程序崩溃。如果不需要可以注释掉这一行代码。
}
```
如果已添加页脚,则生成以下HTML代码:
```html
颜色说明 | 时间已过 | 已审查 | 已审核 | 已审阅 |
```
将以下代码重构为一个函数:
```javascript
function copyExcelTable(curTbl) {
var tbFoot = '
curTb.append(tbFoot);
var oXL = new ActiveXObject("Excel.Application");
var oWB = oXL.Workbooks.Add();
var oSheet = oWB.ActiveSheet;
var sel = document.body.createTextRange();
sel.moveToElementText(curTbl);
sel.select();
sel.execCommand("Copy");
oSheet.Paste();
var sheetR = oSheet.UsedRange.Rows.Count;
var sheetC = oSheet.UsedRange.Columns.Count;
oSheet.Range(oSheet.Cells(1, 1), oSheet.Cells(sheetR, sheetC)).Borders.LineStyle = 1;
oSheet.Range(oSheet.Cells(1, 1), oSheet.Cells(sheetR, sheetC)).Font.Size = 9;
oSheet.Range(oSheet.Cells(1, 1), oSheet.Cells(1, sheetC)).Merge();
oSheet.Cells(2, 1).HorizontalAlignment = 2;
oSheet.Cells(2, 1).VerticalAlignment = 2;
oSheet.Cells(2, 1).Font.Bold = true;
oSheet.Cells(2, 1).Font.Size = 12;
oSheet.Rows(2 + ":").RowHeight = 30;
}
```
Sheet.Range(oSheet.Cells(2, 1), oSheet.Cells(2, sheetC)).Merge();
if (isAddedFoot) {
oSheet.Range(oSheet.Cells(sheetR - 1, 1), oSheet.Cells(sheetR - 1, sheetC)).Merge();
}
oXL.Visible = true;
$("#tbTitle").remove();
$("#tbColor").remove();
//alert("导出成功!");
} catch(e) {
alert("导出失败!");
} finally {
window.setInterval("CleanUp()", 1);
}
}
var CleanUp= function ()
{
window.clearInterval(idTmr);
CollectGarbage();
}