function exporttdp()
{
var curTbl = document.getElementById("tabal");
var oXL = new ActiveXObject("Excel.Application");
//创建AX对象excel
var oWB = oXL.Workbooks.Add();
//获取workbook对象
var xlsheet = oWB.Worksheets(1);
//激活当前sheet
var sel = document.body.createTextRange();
sel.moveToElementText(curTbl);
//全选TextRange中内容
sel.execCommand("Copy");
//复制TextRange中内容
xlsheet.Paste();
//粘贴到活动的EXCEL中
//oXL.Visible = true;
//设置excel可见属性
try{
var fname = oXL.Application.GetSaveAsFilename("国内项目履约", "Excel 工作簿(*.xlsx), *.xlsx");
if(fname){
oWB.SaveAs(fname);
}
else
{
return false;
}
}catch(e){
print("Nested catch caught " + e);
}finally{
oWB.Close(savechanges=false);
oXL.Quit();
oXL=null;
//结束excel进程,1秒后调用Cleanup释放内存
idTmr = window.setInterval("Cleanup();",1);
}
}
function Cleanup()
{
//取消window.setInterval方法设置的定时器
window.clearInterval(idTmr);
//释放内存
CollectGarbage();
}
我用上面的方法导出指定table的内容,为什么有日期的数据都不对呢,图片贴不上来,就是日期那列,有的对的有的不对,全都显示的是#号,我点表头的自动列宽后就全显示出来了,很奇怪,没有时间写java代码做导出,项目通常都是赶出来的,你们懂的,只好用这个方法导出excel了,有没有办法解决下,页面上我已经用fmt格式化了,还是不行,通常是第一行和最后一行数据有问题,中间的数据基本显示正确,纠结ing。
------解决方案--------------------------------------------------------
可以设置每列的宽度的, sheet.setRowView(0, 500);// 列宽
------解决方案--------------------------------------------------------
楼上正解,显示为#是因为列宽太小所致
可以在导出时设置,也可在Excel打开后手工改变列宽
------解决方案--------------------------------------------------------
我们的有导出的格式模板,改Excel模板就行了