废话俺就少说了,直接进入正题!!单纯的js能够导出excel的不多见,一般都需要调用客户端所安装的office excel组件来完成这个工作。这里我主要讲easyui内的datagrid如何结合js导出excel文件
一、 导出excel的核心代码段如下所示
function exproter() {
//获取datagride的列
var rows = $('#test').datagrid('getrows');
var oxl = new activexobject("excel.application"); //创建ax对象excel
var owb = oxl.workbooks.add(); //获取workbook对象
var osheet = owb.activesheet; //激活当前sheet
for (var i = 0; i < rows.length; i++) {
osheet.cells(i + 1, 1).value = rows[i].o_name;
}
oxl.visible = true; //设置excel可见属性
}
二、以上js方法能够顺利执行的大前提就是
1.机器上excel已经安装.
2.internet 选项=>安全=>internet
\"对没有标记为安全的activex控件进行初始化和脚本运行,设定为启用\"
//easyui datagrid 动态导出excel
function exporterexcel() {
//获取datagride的列
var rows = $('#tt').datagrid('getrows');
var columns = $("#tt").datagrid("options").columns[0];
var oxl = new activexobject("excel.application"); //创建ax对象excel
var owb = oxl.workbooks.add(); //获取workbook对象
var osheet = owb.activesheet; //激活当前sheet
//设置工作薄名称
osheet.name = "导出excel报表";
//设置表头
for (var i = 0; i < columns.length; i++) {
osheet.cells(1, i+1).value = columns[i].title;
}
//设置内容部分
for (var i = 0; i < rows.length; i++) {
//动态获取每一行每一列的数据值
for (var j = 0; j < columns.length; j++) {
osheet.cells(i + 2, j+1).value = rows[i][columns[j].field];
}
}
oxl.visible = true; //设置excel可见属性
}