`
angkorpeach
  • 浏览: 119641 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

js操作excel

阅读更多
/*
	全局变量
*/
var xlsObj; 	//excel 对象
var xlsBook;
var xlsSheet;


function exportToExcel(){
	//初始化
	initXlsObj();
	
	drawBaseExcel();
	
	//结束
    endXlsObj();
}

//创建excel对象
function initXlsObj(){
	try{
		/*
			由于每次执行new ActiveXObject ( "Excel.Application" )时,
			都会创建一个EXCEL进程,所以执行这段代码只要执行一次,
			之后就可以直接使用excel对象。
		*/
		if (xlsObj == null){
			xlsObj = new ActiveXObject ( "Excel.Application" );
		}
    }catch(e) {
        alert( "要打印该表,您必须安装Excel电子表格软件,同时浏览器须使用“ActiveX 控件”,您的浏览器须允许执行控件。 请点击【帮助】了解浏览器设置方法!");
        return "";
    }
    
    xlsBook = xlsObj.Workbooks.Add;
    xlsSheet = xlsBook.Worksheets(1);
}

//在excel里画出基本的元素
function drawBaseExcel(){
	
	//总行数
	var iRows = 9;
	
	//获得业务类别
	var busiValue = getRadioValue("case_busicode");
	//获得是否回复
	var isReply = getRadioValue("radiobutton");
	
	//设置列显示字符而不是数字
	xlsSheet.Columns(2).NumberFormatLocal="@";
	xlsSheet.Columns(4).NumberFormatLocal="@";
	xlsSheet.Columns(6).NumberFormatLocal="@";	
	
	//设置列宽
	xlsSheet.Columns(1).ColumnWidth = "10";
	xlsSheet.Columns(3).ColumnWidth = "10";
	xlsSheet.Columns(5).ColumnWidth = "10";
	xlsSheet.Columns(2).ColumnWidth = "20";
	xlsSheet.Columns(4).ColumnWidth = "20";
	xlsSheet.Columns(6).ColumnWidth = "20";
	
	//第一行
	xlsSheet.Range(xlsSheet.Cells(1,1),xlsSheet.Cells(1,6)).mergecells=true;
    xlsSheet.Range(xlsSheet.Cells(1,1),xlsSheet.Cells(1,6)).value="【基本信息】";
    /*
    	ColorIndex 值对应的颜色:
    	1-黑色,
        2-白色,
        3-红色,
        4-绿色,
        5-蓝色,
        6-黄色,
        7-粉红色,
        8-天蓝色,
        9-酱土色..可以多做尝试)
    	
    */
    xlsSheet.Range(xlsSheet.Cells(1,1),xlsSheet.Cells(1,6)).Interior.ColorIndex=41;//设置底色为蓝色 
    //xlsSheet.Rows(1).Interior.ColorIndex = 5 ;//设置行底色为蓝色  
    xlsSheet.Rows(1).Font.ColorIndex = 2;  
    xlsSheet.Rows(1).Font.Size = 12;
    //第二行
	xlsSheet.Cells(2,1).Value = "登记编号";
	xlsSheet.Cells(2,1).Interior.ColorIndex=37;
	xlsSheet.Cells(2,2).Value = formDj.case_id.value;
    xlsSheet.Cells(2,3).Value = "来电号码";
    xlsSheet.Cells(2,3).Interior.ColorIndex=37;
    xlsSheet.Cells(2,4).Value = formDj.case_phonenumber.value;
    xlsSheet.Cells(2,5).Value = "录音文件";
    xlsSheet.Cells(2,5).Interior.ColorIndex=37;
    xlsSheet.Cells(2,6).Value = formDj.case_recordfile.value;
    //第三行
    xlsSheet.Cells(3,1).Value = "来电时间";
    xlsSheet.Cells(3,1).Interior.ColorIndex=37;
    xlsSheet.Cells(3,2).Value = formDj.calltime.value;
    xlsSheet.Cells(3,3).Value = "通话时长";
    xlsSheet.Cells(3,3).Interior.ColorIndex=37;
    xlsSheet.Cells(3,4).Value = document.getElementById("calltimelong").innerText;
    xlsSheet.Cells(3,5).Value = "业务类别";
    xlsSheet.Cells(3,5).Interior.ColorIndex=37;
    xlsSheet.Cells(3,6).Value = getRadioText("case_busicode",busiValue);
    
    //第四行
    xlsSheet.Range(xlsSheet.Cells(4,1),xlsSheet.Cells(4,6)).mergecells=true;
    xlsSheet.Range(xlsSheet.Cells(4,1),xlsSheet.Cells(4,6)).value="【信息提供】";
    xlsSheet.Range(xlsSheet.Cells(4,1),xlsSheet.Cells(4,6)).Interior.ColorIndex=41;//设置底色为蓝色 
    xlsSheet.Rows(4).Font.ColorIndex = 2;  
    xlsSheet.Rows(4).Font.Size = 12;
    //第五行
	xlsSheet.Cells(5,1).Value = "姓名";
	xlsSheet.Cells(5,1).Interior.ColorIndex=37;
	xlsSheet.Cells(5,2).Value = formDj.case_caller.value;
    xlsSheet.Cells(5,3).Value = "人员类别";
    xlsSheet.Cells(5,3).Interior.ColorIndex=37;
    xlsSheet.Cells(5,4).Value = formDj.case_callertype.options[formDj.case_callertype.selectedIndex].text;
    xlsSheet.Cells(5,5).Value = "性别";
    xlsSheet.Cells(5,5).Interior.ColorIndex=37;
    xlsSheet.Cells(5,6).Value = formDj.sex.value;
    //第六行
    xlsSheet.Cells(6,1).Value = "联系电话";
    xlsSheet.Cells(6,1).Interior.ColorIndex=37;
    xlsSheet.Cells(6,2).Value = formDj.case_callertel.value;
    xlsSheet.Cells(6,3).Value = "所属区域";
    xlsSheet.Cells(6,3).Interior.ColorIndex=37;
    xlsSheet.Cells(6,4).Value = formDj.case_callerareaname.value;
    xlsSheet.Cells(6,5).Value = "所在单位";
    xlsSheet.Cells(6,5).Interior.ColorIndex=37;
    xlsSheet.Cells(6,6).Value = formDj.case_callerunit.value;
    //第七行
    xlsSheet.Cells(7,1).Value = "手机号码";
    xlsSheet.Cells(7,1).Interior.ColorIndex=37;
    xlsSheet.Cells(7,2).Value = formDj.case_callermob.value;
    xlsSheet.Cells(7,3).Value = "Email地址";
    xlsSheet.Cells(7,3).Interior.ColorIndex=37;
    xlsSheet.Cells(7,4).Value = formDj.case_callermail.value;
    xlsSheet.Cells(7,5).Value = "邮编";
    xlsSheet.Cells(7,5).Interior.ColorIndex=37;
    xlsSheet.Cells(7,6).Value = formDj.case_callerpost.value;
    //第八行
    xlsSheet.Cells(8,1).Value = "通信地址";
    xlsSheet.Cells(8,1).Interior.ColorIndex=37;
   	xlsSheet.Range(xlsSheet.Cells(8,2),xlsSheet.Cells(8,6)).mergecells=true;
   	xlsSheet.Cells(8,2).Value = formDj.case_calleraddr.value;
   	
   	//业务类别为投诉举报,则显示如下行
   	if(busiValue == "03"){
	   	//第九行
	    xlsSheet.Range(xlsSheet.Cells(iRows,1),xlsSheet.Cells(iRows,6)).mergecells=true;
	    xlsSheet.Range(xlsSheet.Cells(iRows,1),xlsSheet.Cells(iRows,6)).value="【涉及对象】";
	    xlsSheet.Range(xlsSheet.Cells(iRows,1),xlsSheet.Cells(iRows,6)).Interior.ColorIndex=41;//设置底色为蓝色 
	    xlsSheet.Rows(iRows).Font.ColorIndex = 2;  
	    xlsSheet.Rows(iRows).Font.Size = 12;
	    iRows++;
	    
	    //第十行
		xlsSheet.Cells(iRows,1).Value = "姓名/名称";
		xlsSheet.Cells(iRows,1).Interior.ColorIndex=37;
		xlsSheet.Cells(iRows,2).Value = formDj.case_appellee.value;
	    xlsSheet.Cells(iRows,3).Value = "所属区域";
	    xlsSheet.Cells(iRows,3).Interior.ColorIndex=37;
	    xlsSheet.Cells(iRows,4).Value = formDj.case_appelleeunitname.value;
	    xlsSheet.Cells(iRows,5).Value = "管辖部门";
	    xlsSheet.Cells(iRows,5).Interior.ColorIndex=37;
	    xlsSheet.Cells(iRows,6).Value = formDj.case_appelleedept.value;
	    iRows++;
	    
	    //第十一行
	    xlsSheet.Cells(iRows,1).Value = "电话";
	    xlsSheet.Cells(iRows,1).Interior.ColorIndex=37;
	    xlsSheet.Cells(iRows,2).Value = formDj.case_appelleetel.value;
	    xlsSheet.Cells(iRows,3).Value = "手机";
	    xlsSheet.Cells(iRows,3).Interior.ColorIndex=37;
	    xlsSheet.Cells(iRows,4).Value = formDj.case_appelleemob.value;
	    iRows++;;
    }
    
    //第十二行
    xlsSheet.Range(xlsSheet.Cells(iRows,1),xlsSheet.Cells(iRows,6)).mergecells=true;
    xlsSheet.Range(xlsSheet.Cells(iRows,1),xlsSheet.Cells(iRows,6)).value="【具体内容】";
    xlsSheet.Range(xlsSheet.Cells(iRows,1),xlsSheet.Cells(iRows,6)).Interior.ColorIndex=41;//设置底色为蓝色 
    xlsSheet.Rows(iRows).Font.ColorIndex = 2;  
    xlsSheet.Rows(iRows).Font.Size = 12;
    iRows++;
    
    //第十三行
	xlsSheet.Cells(iRows,1).Value = "问题类别";
	xlsSheet.Cells(iRows,1).Interior.ColorIndex=37;
    xlsSheet.Range(xlsSheet.Cells(iRows,2),xlsSheet.Cells(iRows,4)).mergecells=true;
    xlsSheet.Rows(iRows).WrapText=true; //自动换行
    xlsSheet.Cells(iRows,2).Value = formDj.case_infotypename.value;
    xlsSheet.Cells(iRows,5).Value = "缓急";
    xlsSheet.Cells(iRows,5).Interior.ColorIndex=37;
    xlsSheet.Cells(iRows,6).Value = formDj.case_exigencesign.options[formDj.case_exigencesign.selectedIndex].text;
    iRows++;
    
    //第十四行
	xlsSheet.Cells(iRows,1).Value = "主题";
	xlsSheet.Cells(iRows,1).Interior.ColorIndex=37;
    xlsSheet.Range(xlsSheet.Cells(iRows,2),xlsSheet.Cells(iRows,4)).mergecells=true;
    xlsSheet.Cells(iRows,2).Value = formDj.case_callersubject.value;
    
    //业务类别为投诉举报,则显示如下列
   	if(busiValue == "03"){
	    xlsSheet.Cells(iRows,5).Value = "保密设置";
	    xlsSheet.Cells(iRows,5).Interior.ColorIndex=37;
	    xlsSheet.Cells(iRows,6).Value = formDj.case_secrecylevel.options[formDj.case_secrecylevel.selectedIndex].text;
    }
    iRows++;
    
    //第十五行
    xlsSheet.Rows(iRows).RowHeight = 60;	//行高
	xlsSheet.Cells(iRows,1).Value = "内容";
	xlsSheet.Cells(iRows,1).Interior.ColorIndex=37;
    xlsSheet.Range(xlsSheet.Cells(iRows,2),xlsSheet.Cells(iRows,6)).mergecells=true;
    xlsSheet.Rows(iRows).WrapText=true; //自动换行
    xlsSheet.Cells(iRows,2).Value = formDj.case_callercontent.value;
    iRows++;
    
    //第十六行
    xlsSheet.Cells(iRows,1).Value = "是否回复";
	xlsSheet.Cells(iRows,1).Interior.ColorIndex=37;
	xlsSheet.Cells(iRows,2).Value = getRadioText("radiobutton",isReply);
	
	
	if(isReply == "1"){
	    xlsSheet.Cells(iRows,3).Value = "回复时间";
	    xlsSheet.Cells(iRows,3).Interior.ColorIndex=37;
	    xlsSheet.Cells(iRows,4).Value = formDj.case_transactdate.value;
	    xlsSheet.Cells(iRows,5).Value = "回复方式";
	    xlsSheet.Cells(iRows,5).Interior.ColorIndex=37;
	    xlsSheet.Cells(iRows,6).Value = formDj.case_reverttype.options[formDj.case_reverttype.selectedIndex].text;
	 	iRows++;   
	 	
	    //第十七行
	    xlsSheet.Rows(iRows).RowHeight = 60;	//行高
		xlsSheet.Cells(iRows,1).Value = "回复内容";
		xlsSheet.Cells(iRows,1).Interior.ColorIndex=37;
	    xlsSheet.Range(xlsSheet.Cells(iRows,2),xlsSheet.Cells(iRows,6)).mergecells=true;
	    xlsSheet.Rows(iRows).WrapText=true; //自动换行
	    //xlsSheet.Rows(17).RowHeight = 500;	//行高
	    xlsSheet.Cells(iRows,2).Value = formDj.case_transactresult.value;
	    
	 }

	//设置边框
    xlsSheet.Range(xlsSheet.Cells(1,1),xlsSheet.Cells(iRows,6)).Borders.Weight = 2; 
    //列自适应宽度
    //xlsSheet.Range(xlsSheet.Cells(1,1),xlsSheet.Cells(iRows,6)).Columns.AutoFit;
}

function endXlsObj(){
	xlsObj.visible = true;
    xlsObj.UserControl = true;
	//xlsBook.Close(savechanges=false);	//这句会关闭sheet
	//xlsObj.Quit();	//这句会提示关闭生成的excel文件
    xlsObj=null;
    xlsBook=null;
    xlsSheet=null;
}

function getRadioText(sId,sValue){
	if(sId == "case_busicode"){
		switch (sValue){
			case '01' :
				return "政策咨询";
				break;
			case '02' :
				return "办事指南";
				break;
			case '03' :
				return "投诉举报";
				break;
			case '05' :
				return "信息查询";
				break;
			case '06' :
				return "建议意见";
				break;
		}
	}else if(sId == "radiobutton"){
		switch (sValue){
			case '1' :
				return "是";
				break;
			case '0' :
				return "否";
				break;
		}
	}
}

function getRadioValue(sName){
	var radioObj = document.getElementsByName(sName);
	for(var i=0;i<radioObj.length;i++){
		if(radioObj[i].checked==true){
			return radioObj[i].value;
		}
	}
}

 

  1、展示效果见附件;

  2、以上代码不一定能直接运行,需要出发exportToExcel()方法,且根据业务需要,需要去掉调用getRadioValue(sName)方法的地方

  • 大小: 71.7 KB
分享到:
评论
1 楼 wqshren 2010-04-26  
学习一下!

相关推荐

Global site tag (gtag.js) - Google Analytics