IE浏览器:Excel导入示例
很多插件兼容IE导出,但不兼容IE导入。故此提供如下IE导入示例。
//使用Layui上传组件进行导入
layui.upload.render({
elem: "#importXls2",
url: "",
auto: false,
accept: "file",
acceptMime: "application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
exts: "xls|xlsx",
choose: function(chooseObj){
//当IE浏览器时
if(!!window.ActiveXObject || "ActiveXObject" in window){
//Excel导入
//通过隐藏的Input file获取选择的文件完整路径
var FileWindowDiv=$("<div id='FileWindowDiv' class='FileWindow' style='display:none'></div>");
$("body").append(FileWindowDiv);
var FileWindow=$("<input id='FileWindow' type='file'/>");
$("#FileWindowDiv").append(FileWindow);
$("#FileWindow").on('change', function (e) {
//得到所选文件完整路径
var FilePath=$('#FileWindow').val();
FilePath=FilePath.replace("fakepath\\","")
console.log(FilePath);
//实例化Excel App
var xlsApp=new ActiveXObject("Excel.Application");
//通过Workbooks打开Excel
var xlsBook=xlsApp.Workbooks.open(FilePath);
//得到Sheet表
xlsBook.Worksheets(1).select();
var xlsSheet=xlsBook.ActiveSheet;
var rows=xlsSheet.usedrange.rows.count; //行数
var cols=xlsSheet.usedRange.columns.count; //列数
//数据放入JSON对象数组。注意xlsSheet索引从1开始
var dataArr=[];
for (var i=2;i<=rows;i++){
var jsonObj={}
for (var j=1;j<=cols;j++){
switch (j){
case 1: //第1列赋值
jsonObj.REA_RowId=xlsSheet.Cells(i,j).text;
break;
case 2: //第2列赋值
jsonObj.REA_Desc=xlsSheet.Cells(i,j).text;
break;
}
}
dataArr.push(jsonObj);
}
//得到所有待导入的数据,可在此调用后台方法批量插入数据
console.log(JSON.stringify(dataArr));
});
$(".FileWindow input").click();
return;
}
}
});
IE浏览器:Excel导出示例
$("#ExportXls").click(function(){
//当IE浏览器时
if(!!window.ActiveXObject || "ActiveXObject" in window){
var dgRows=$("#PatList").datagrid('getRows');
if (dgRows<1){
layer.msg("无可导出的数据!",{icon:2,anim:6});
return;
}
$.messager.progress({
title: "提示",
msg: "正在导出数据",
text: "导出中....",
iconCls:"icon-export"
});
$.cm({
ClassName:"wcw.cls.Query",
QueryName:"getPatInfo",
},function(data){
var myRows=data.rows; //数据
var myLength=myRows.length;
if (myLength>0){
$.messager.progress("close");
//实例化Excel App对象
var xlsApp=new ActiveXObject("Excel.Application");
xlsApp.visible=true; //设置excel为可见
//添加Workbooks
var xlsBook=xlsApp.Workbooks.Add;
//得到Worksheets
var xlsSheet=xlsBook.Worksheets(1);
//定义表头
var codeArray=["PatName","AdmReason","RegNo","EpisodeID","PersonNo"];
var deseArray=["姓名","费别","登记号","就诊ID","身份证号"];
var columnWidth=[9,15,12,11,20];
//设置表头及其宽度
for (j=0;j<deseArray.length;j++){
xlsSheet.Columns(j+1).ColumnWidth=columnWidth[j];
xlsSheet.Cells(1,j+1)=deseArray[j];
}
//设置单元格数据
for (i=0;i<myLength;i++){
for (j=0;j<codeArray.length;j++){
var myCode=codeArray[j];
xlsSheet.Cells(i+2,j+1)=myRows[i][myCode];
}
}
xlsApp.ActiveWindow.Zoom=100; //预览缩放比例
xlsApp.UserControl=true; //很重要,不能省略,不然可能会出问题,意思是excel交由用户控制
//关闭
xlsApp=null;
xlsBook=null;
xlsSheet=null;
}
});
}
});