由于页面上的表格信息都是input输入框,所以直接将table复制移到excel的方法没办法使用,上网搜了一下搞了一个
var oXL = new ActiveXObject("Excel.application");
var oWB = oXL.Workbooks.Add();
var oSheet = oWB.ActiveSheet;
oSheet.Cells(1, 1).value = "月份";
oXL.Range("A1:A2").MergeCells = true;//将上下单元格合并
oSheet.Cells(1, 23 + 8 + 9).value = "组织运营成本";
oXL.Range("AN1:AN2").MergeCells = true;// 横向合并
// 设置表头样式
for (var i = 0; i < 43; i++) {
oSheet.Cells(1, i + 1).Interior.ColorIndex = 35; //设置单元格底色*(1-黑色,
oSheet.Cells(2, i + 1).Interior.ColorIndex = 35; //设置单元格底色*(1-黑色,
oSheet.Cells(1, i + 1).Borders.Weight = 2;//边框线 细
oSheet.Cells(2, i + 1).Borders.Weight = 2;//边框线 细
oSheet.Cells(1, i + 1).Font.Bold = true; //设置为粗体*
oSheet.Cells(2, i + 1).Font.Bold = true; //设置为粗体*
oSheet.Cells(1, i + 1).HorizontalAlignment = 3;
oSheet.Cells(2, i + 1).HorizontalAlignment = 3;
}
// 循环行,循环列 取到input输入框的值,给excel赋值
for (i = 3; i < hang; i++) {
for (j = 1; j < lie; ++j) {
oSheet.Cells(i, j).Borders.Weight = 2;//边框线 细
oSheet.Cells(i, j).value = $("#FPTable tr:eq(" + i + ") td:eq(" + j + ") input").val();
}
}
// 最终打开
oXL.Visible = true;
oXL.UserControl = true;
打开是这样的: