`
angkorpeach
  • 浏览: 122021 次
  • 性别: 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  
学习一下!

相关推荐

    js操作Excel的类库

    js操作Excel的类库js操作Excel的类库js操作Excel的类库js操作Excel的类库js操作Excel的类库js操作Excel的类库js操作Excel的类库js操作Excel的类库js操作Excel的类库js操作Excel的类库

    javascript操作EXCEL

    JavaScript 操作 Excel JavaScript 操作 Excel 是指使用 JavaScript 语言来操作和控制 Excel 应用程序。通过使用 ActiveXObject 对象,可以在客户端操作 Excel 文件,而不需要访问服务器端。 在使用 JavaScript ...

    JavaScript操作Excel_Demo.zip

    在这个“JavaScript操作Excel_Demo.zip”压缩包中,包含了一个名为“xlsx.full.min.js”的插件,它是XLSX库的一个版本,用于读取和写入CSV、XLS、XLSX等多种格式的电子表格文件。这个库基于JSON,使得在JavaScript...

    Js操作Excel常用方法.pdf

    在介绍JavaScript操作Excel的常用方法之前,首先要明确一点,这些操作通常是借助COM自动化技术(如ActiveX对象)来实现的,因为这涉及到直接与Excel应用程序的接口交互。然而,需要注意的是,这种做法主要适用于...

    Js操作Excel

    Js操作Excel,更多功能自己改进!

    js操作excel.rar

    在IT行业中,JavaScript(简称JS)是一种广泛使用的前端编程语言,它主要负责...了解这些知识点后,开发人员可以根据实际需求,结合提供的HTML文件学习和实践JavaScript操作Excel的技巧,从而实现高效的数据导出功能。

    js 操作excel demo

    在JavaScript(js)中操作Excel文件,通常是为了在网页端实现数据导入导出或数据分析功能。这个"js操作excel demo"示例旨在演示如何利用JavaScript读取本地的2003版Excel文件(XLS格式)。以下是这个示例中可能涉及...

    封装好的一套javascript操作Excel的javabean

    实现javascript操作Excel进行报表输出的javabean接口类,通过调用bean的方法快速生成客户端的javascript来操作Excel,实现读取Excel模板,添加记录,打印设置,打印预览,自动保存文件等功能,本人多年的web开发经验...

    javascript操作excel生成报表示例_.docx

    【JavaScript操作Excel生成报表】 在IT领域,有时候我们需要在网页端生成报表并导出为Excel格式,以便用户能够方便地下载和分析数据。JavaScript是一种常用的客户端脚本语言,虽然它通常用于网页交互,但通过特定的...

    前台js操作excel文件的包

    前台js操作excel文件的包

    js操作excel文件--导出

    js导入excel表格或者导出为excel格式,用到的js文件xlsx.full.min.js资源

    js-Excel及弹出层

    首先,关于“js操作Excel”,JavaScript通常不直接支持与Excel文件进行交互,因为它运行在浏览器环境中,无法访问本地文件系统。然而,通过一些库和API,我们可以实现类似的功能。例如,`xlsx`库是一个流行的...

    JS操作Excel:使用js-xlsx实现前端导出Excel文件

    JavaScript是前端开发的主要语言,而js-xlsx是一个强大的开源库,专门为JavaScript设计,用于处理Excel文件。这个库允许开发者在不依赖服务器的情况下读取、写入和转换Excel数据,极大地扩展了前端处理复杂数据的...

    JavaScript 使用ActiveX实现在Excel文件中插入图片

    JavaScript 使用ActiveX实现在Excel文件中插入图片

    javascript 操作Word和Excel的实现代码

    虽然题目和描述中没有具体提及Excel文档的操作,但我们可以基于Word文档操作的基础之上,介绍如何使用JavaScript操作Excel文档。 ##### 1. 创建Excel对象 创建Excel对象的方式与创建Word对象类似,都是通过`...

    HTML用JS导出Excel的五种方法.javascript导出excel的5种方法

    对于Microsoft Edge和IE浏览器,可以利用`OfficeJS`库直接操作Excel在线版。这需要用户有Office 365订阅,并在支持的浏览器中运行。 ```javascript // 引入OfficeJS库 import * as Office from 'office-js'; ...

    javascript excel操作

    ### JavaScript 操作 Excel 的知识点详解 #### 一、概述 ...综上所述,通过JavaScript操作Excel是一个实用的功能,但需要注意兼容性和安全性问题。开发者应该根据实际情况选择合适的技术栈来实现这一需求。

    sheetJS 离线操作excel

    SheetJS 是一个强大的开源库,专门用于在JavaScript环境中读取、写入和操作Excel文件(XLSX 和 XLSM 格式)。这个库被称为 `js-xlsx`,它的核心功能在于允许用户在浏览器端离线处理Excel数据,极大地减少了与服务器...

Global site tag (gtag.js) - Google Analytics