js控制excel打印完美解决方案

网上有关“js控制excel打印完美解决方案”话题很是火热,小编也是针对js控制excel打印完美解决方案寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。

 做web开发大家都遇到过打印的问题 对于复杂的表格打印着实令人头痛 这片文章介绍一下使用excel打印的解决方法

 首先 如果客户端调用excel必须降低ie安全级别 这样一些非法的控件 如 什么的都自动安装了 所以我这样解决 保持原来的ie设置 把你的站点添加到信任站点 然后更改安全站点的安全级别 这样就给你的站点设置了一个安全通道 而且阻止了 等的非法入侵 当然前提是你要让你的客户下载一个注册表并安装 我是自己做 自己用 所以我得用户是我说什么都跟着我做 你们就需要说服客户了 ) 好 那么下一步就是如何实现打印了 这里我有非常夺得报表 而且一些非常复杂 如学生成绩单 需要按照学年 学期计算学分绩点 打印照片 学位授予情况 学籍处理情况 四六级成绩 实习 辅修成绩 实践等 那么我如何把这些信息完整的打印到客户端就是非常麻烦的了 所有我用excel 先做一个模版 然后调用模版填充数据 问题又来了 这么多数据怎么组织呢 摸索好长时间 突然有个想法 把数据的提取单独写一个对象 这样我的程序就简洁多了 而且最好的是我任何地方都可以一样使用它 还说成绩单 数据非常大 多的要 条数据 所以我的数据源选择了表格 这样不必费力的生成什么xml了 显示的就是我要的数据 ok介绍一下Gettabledata js 它就是我要的数据对象了 主要功能是从table中提取数据(GetTableData) 并提供一个输出数据的方法(getfielddata) 这个基本功能可以满足我多数的需求 这个我自己写的一个简介 怕以后我忘了的 ) 大家看看有什么不清楚的我补充一下

 //Obj参数指定数据的来源(限定Table) 默认第一行为字段名称行//MoveNext方法 参数是表的行向上或向下移动的位数 正数向下移动 负数向上 如 MoveNext( ) MoveNext( )//GetFieldData方法获得当前行的指定的列名的数 据如 GetFieldData( 考试成绩 ):列名 GetFieldData( ) 索引//Sort_desc方法对指定的列按降序排列 如 Sort_desc( 学年 学期 )//Sort_asc方法对指定的列按升序排列 如 Sort_asc( 考试成绩:number ): : 后面的参数制定改列数据类型 此例为数字//GetData方法返回字段值为特定值的数据数组 如果没有字段值则返回所有该字段记录 可以在外部进行其他处理 不建议直接处理数据 如 GetData()//Delete方法删除当前记录 数组减少一行 如: Delete//updateField更新当前行的指定的索引数据(索引如果是数字 则是列的索引 为字符 是数据字段的名称)如:MyData UpdateField( 课程号 MyData GetFieldData( 原课程号 ))//MoveFirst记录移动到数据的第一条记录 注意数据从第二行开始 默认第一行为字段名称行//MoveLast记录移动到数据的最后一条记录//Distinct返回所选记录的不同记录的条件个数维数数组 同时升序排序//初始化 Obj:table的名字 Leftlen:左面多余数据长度 Rightlen:右面多余数据长度 //rows属性:数组行数 cols:列数

 在示例代码中Print_bzcjd js他是打印复杂excel的脚本

 var xlBook = xls Workbooks Open( c:\\xsxycjb xls );var xlsheet = xlBook Worksheets( )

 这个可是使用网络模板

 var xlBook = xls Workbooks Open( \PrintTemplates\\xsxycjb xls );var xlsheet = xlBook Worksheets( )

 这个力例子中基本把excel打印需要的技术都展示出来了 如 退出什么的

 这里要说明的是table的数据可以是隐藏的 不显示也可以取出 这样就可以增加很多数据进来 又不影响界面

 Excel js 这个是清理excel的脚本 当结束excel进程的时候它还没有推出 清理一下 这个就没有vs好了 (

 这个是一个简单的示例 就是你给他一个表格名字就可以了 然后生成一个表格 就是这样:MakeExcel( TABLE true xls ) 其他参数可以不要

 function MakeExcel(Obj ProceVisible SaveAsFilename SortType SortField){var MyData= new GetTableData(Obj );var myrows=MyData rows;var i j;

lishixinzhi/Article/program/Java/Javascript/201311/25274

js如何导出exel文件

/*********↑不要把简单的问题复杂化**********/

/*****不管是动态生成还是静态生成,此方法通杀******/

直接代码复制出去运行,我已经尽量写简单了,如果你还是不明白,那么...我...

<html>

<head>

<title>1</title>

<script>

//得到行对象

function getRowObj(obj)

{

var i = 0;

while(obj.tagName.toLowerCase() != "tr"){

obj = obj.parentNode;

if(obj.tagName.toLowerCase() == "table")return null;

}

return obj;

}

//根据得到的行对象得到所在的行数

function getRowNo(obj){

var trObj = getRowObj(obj);

var trArr = trObj.parentNode.children;

for(var trNo= 0; trNo < trArr.length; trNo++){

if(trObj == trObj.parentNode.children[trNo]){

alert(trNo+1);

}

}

}

//删除行

function delRow(obj){

var tr = this.getRowObj(obj);

if(tr != null){

tr.parentNode.removeChild(tr);

}else{

throw new Error("the given object is not contained by the table");

}

}

</script>

</head>

<body>

<table border = "1">

<tr>

<td>A<input type="button" value="A" onclick="getRowNo(this)">getRowNo<td>

</tr>

<tr>

<td>B<input type="button" value="B" onclick="delRow(this)">delRow<td>

</tr>

<tr>

<td>C<input type="button" value="C" onclick="getRowNo(this)">getRowNo</td>

</tr>

<tr>

<td>D<input type="button" value="D" onclick="getRowNo(this)">getRowNo</td>

</tr>

</table>

</body>

<html>

使用js如何求table中一列的和

一。导出Excel有两种:

1.

function ExportExcel(tableid){//读取表格中每个单元到EXCEL中

try

{

var curTbl = document.getElementById(tableid);

var oXL = new ActiveXObject("Excel.Application"); //创建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; //取得每行的列数

for (j = 0; j < Lenc; j++){

oSheet.Cells(i + 1, j + 1).value = curTbl.rows(i).cells(j).innerText; //赋值

}

}

oXL.Visible = true; //设置excel可见属性

}

catch(e)

{

alert(e.message);

}

}

2:

function dataToExcel(tableid) {//整个表格拷贝到EXCEL中

var curTbl = document.getElementById(tableid);

var oXL;

try {

oXL = GetObject("", "Excel.Application");

}

catch (E) {

try {

oXL = new ActiveXObject("Excel.Application");

}

catch (E2) {

//alert("Please confirm:\n1.Microsoft Excel has been installed.\n2.Internet Options=>Security=>Setting \"Enable unsafe ActiveX\"");

alert("请确认:\n1.机器上Excel已经安装.\n2.Internet 选项=>安全=>Internet \"对没有标记为安全的ActiveX控件进行初始化和脚本运行,设定为启用\"");

return;

}

}

//创建AX对象excel

var oWB = oXL.Workbooks.Add();

//获取workbook对象

var oSheet = oWB.ActiveSheet;

//激活当前sheet

var sel = document.body.createTextRange();

sel.moveToElementText(curTbl);

//把表格中的内容移到TextRange中

sel.select();

//全选TextRange中内容

sel.execCommand("Copy");

//复制TextRange中内容

oSheet.Paste();

//粘贴到活动的EXCEL中

oXL.Visible = true;

//设置excel可见属性

}

这问题很容易解决,求第二列的话就用

for(var i = 0; i<document.getElementById("ddd").childNodes[0].childNodes.length; i++){

if(i%2==0){

num+=parseInt(document.getElementById("ddd").childNodes[0].childNodes[i].childNodes[0].innerText);}

}

明白吧,就是用模除,如果求第三列条件就设置为i%3=0就可以了

关于“js控制excel打印完美解决方案”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!

(11)

猜你喜欢

发表回复

本站作者才能评论

评论列表(3条)

  • 劳新霞的头像
    劳新霞 2025年12月15日

    我是中擎号的签约作者“劳新霞”

  • 劳新霞
    劳新霞 2025年12月15日

    本文概览:网上有关“js控制excel打印完美解决方案”话题很是火热,小编也是针对js控制excel打印完美解决方案寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,...

  • 劳新霞
    用户121510 2025年12月15日

    文章不错《js控制excel打印完美解决方案》内容很有帮助

联系我们:

邮件:中擎号@gmail.com

工作时间:周一至周五,9:30-17:30,节假日休息

关注微信