js控制excel一点小事
Js导出表格到excel,收集了点方法,但有个问题还是没解决..
先看我导出的方法
//导出EXCEL
function method2(tableid) //读取表格中每个单元到EXCEL中
{
var curTbl = document.getElementById(tableid);
try {
var oXL = new ActiveXObject("Excel.Application");
}
catch(e)
{
alert( "您必须安装Excel2000或以上,同时浏览器须使用“ActiveX 控件”,您的浏览器须允许执行控件。请选择Internet设置--安全选项--本地Intranet--改区域的安全级别设置为低,才能导出到Excel!");
window.location.reload();
return "";
}
//创建AX对象excel
var oWB = oXL.Workbooks.Add();
//获取workbook对象
var oSheet = oWB.ActiveSheet;
//激活当前sheet
var Lenr = curTbl.rows.length;
//取得表格行数
for (i = 0; i < Lenr; i++)
{
var Lenc = curTbl.rows(i).cells.length;
//<!--设置显示字符而不是数字-->
oSheet.Columns(6).NumberFormatLocal="@"
oSheet.Columns(5).NumberFormatLocal="@";
oSheet.Columns(8).NumberFormatLocal="@";
//取得每行的列数
for (j = 0; j < Lenc; j++)
{
oSheet.Cells(i + 1, j + 1).value = curTbl.rows(i).cells(j).innerText;
//赋值
}
}
oXL.Selection.HorizontalAlignment = -4108; //'xlHAlignCenter 横向居中
oXL.Range("a1:b1:c1:d1:f1:g1:h1:i1:j1:k1").MergeCells = true;//合并
//oXL.Range("a1:b1").select;//选中
//oXL.Selection.VerticalAlignment = -4108; //'xlVAlignCenter 竖向居中
oSheet.Columns.AutoFit; //自动适应大小
//设置excel可见属性
oXL.Visible = true;
oXL.UserControl = true; //excel交由用户控制
}
客户端都需要改设置,觉得很不好,本来使用ajax客户端就是为了减低服务器压力,现在却有这个麻烦....
有些用户把Internet设置安全级别设置为低就可了,但是测试过后有一部分机子居然要把"对没有标记为安全的activex控件进行初始化和脚本运行”设置成“启用”才可.
这对用户ie会造成安全隐患.
这个问题没有好的解决方法,各位用过的可以指点一下.
还有一疑问,因为我的table是根据用户选择需要显示的信息才显示,用户没选择要显示的不显示,
但是问题来了,js导出到excel时候隐藏的信息会在excel里面成为空的一列.
不指点是否有解决方法,或者js有让excel去空列的方法?望指教..