JS导出Excel/word
2011-04-27 10:55
597 查看
【转】 JS打印和报表输出
2011-03-31 08:53
转载自 51buyhost
最终编辑 玉霄剑法
2011-03-31 08:53
转载自 51buyhost
最终编辑 玉霄剑法
一打印: (1) 在实际应用中!特别是一些公司需要报表输出和打印!这个时候我们就会用到JS的打印和报表输出功能!当然打印很简单就是window.print();你也可以在按钮的onclick事件中写上return print()可以实现打印效果!这个时候打印你会发现打印出来的是整个页面,包裹着网站的logo和一些其他不需要的按钮!这个时候我们可以使用div控制一下。把不需要打印的东西用<div class="noPrint">不 打印的内容 </div> 然后 <style type="text/css" media="print"> .noprint{display:none;} </style> 这个时候就可以实现打印时不打印其他信息的效果! 说明: 1.除去页眉页脚:通过浏览器的"页面设置"选项把其中的"页眉"和"页脚"的内容清空即可. 2.打印出背景色:通过浏览器的"工具"-"internet选项"-"高级"-"打印"-"打印背景色和图像"选中即可. (2) 同时可以使用使用WebBrowser打印.(ie内置组件无需安装,可实现打印预览等功能) 使用方法在页面中放置如下代码:<object id="WebBrowser" classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height="0" width="0"> </object> 在按钮中调用OnClick="return userPrint()" function userPrint() { document.WebBrowser.Execwb(7,1);//打印预览 return false; } 调用WebBrowser进行打印等操作(参数列表) WebBrowser.ExecWB(1,1) 打开 WebBrowser.ExecWB(2,1) 关闭现在所有的IE窗口,并打开一个新窗口 WebBrowser.ExecWB(4,1) 保存网页 WebBrowser.ExecWB(6,1) 打印 WebBrowser.ExecWB(7,1) 打印预览 WebBrowser.ExecWB(8,1) 打印页面设置 WebBrowser.ExecWB(10,1) 查看页面属性 WebBrowser.ExecWB(15,1) 好像是撤销,有待确认 WebBrowser.ExecWB(17,1) 全选 WebBrowser.ExecWB(22,1) 刷新 WebBrowser.ExecWB(45,1) 关闭窗体无提示 效果图: 如果要一个页面显示2个表格,打印时让2个分页的话可以使用div隔开2个表格在他们中间加:<div class="PageNext"></div> 样式:<style media="print" type="text/css"> .PageNext{page-break-after: always;} </style> 二:输出到Word或Excel中(转自《灰灰虫的家》) 实现思路,用JavaScript创建word或Excel对象,然后复制页面中需要输出的内容,粘贴在Word或Excel对象的文档中去. //输出到Word中 function Button2_onclick() { //创建Word应用程序对象 var oWD = new ActiveXObject("Word.Application"); //向Word应用程序对象中添加一个文档对象,并取出其中的Range(0) var oRange =oWD.documents.add().Range(0,0); //根据HTML页面创建TextRange对象,以便定位到要打印的元素中 var sel = document.body.createTextRange(); //定位到TextRage对象中要打印的元素上,GridView1是要打印的元素的ID sel.moveToElementText(GridView1); //选中GridView1元素的所有HTML内容 sel.select(); //将选中的内容复制到剪切板上 sel.execCommand("Copy"); //粘贴到Word文档对象中去 oRange.Paste(); //显示Word程序和文档内容 oWD.Application.Visible = true; //调用Word的打印程序 //oWD.application.printout(); //关闭word文档对象,参数0代表不保存文档 //oWD.application.activedocument.close(0); //退出word程序 //oWD.application.quit(); } //输出到Excel中 function Button3_onclick() { var oXL = new ActiveXObject("Excel.Application"); var oWB = oXL.Workbooks.Add(); var oSheet = oWB.ActiveSheet; var sel=document.body.createTextRange(); sel.moveToElementText(GridView1); sel.select(); sel.execCommand("Copy"); oSheet.Paste(); oXL.Visible = true; } 总结:这种方式可以快速地将页面的内容转换到Word或Excel中,其功能是在客户端实现,减轻了服务器的压力. 这里在使用的时候浏览器会提示"是否允许对剪切板的访问",可以在IE的Internet选项中的"安全"中进行设置. 这种方式只适合在Windows平台上的转换. [b]三.根据己有的word或excel文件样式输出报表(转自《灰灰虫的家》) 实现思路:在服务器端建立一个Word或Excel文档,文档中加入书签,然后把要添写的内容写入标签中. (1)创建一个Word文档,在该文档中设计好要打印的会议记录的格式,并将其保存到实例根目录下,名称为student.doc。 (2)在创建好的Word文档中的指定位置插入书签。插入书签首先选中需要替换的文本,然后选择“插入”→“书签”选项,在打开的对话框中输入书签名,并单击“添加”按钮即可。 (3)编写自定义JavaScript函数,用于将表单收集的数据导出到Word中,并进行自动打印,代码如下: 服务器端 protected void Page_Load(object sender, EventArgs e) { string str = Request.Url.ToString(); string s = str.Substring(0, str.LastIndexOf("/")); //将当前页面的父路径存入Hidden中 this.Hidden1.Value = s + "/"; } 客户端 <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>无标题页</title> <script language="javascript" type="text/javascript"> function Button1_onclick() { //取出Hidden中的内容 var ss = document.form1.Hidden1.value; //创建word应用程序对象 var wordapp = new ActiveXObject("word.application"); //显示word应用程序窗口 wordapp.visible=true; //设置word文件模板的路径 var s = ss+"student.doc"; //打开要填写的模板 var worddoc = wordapp.application.documents.open(s); var range; //取出word中相应的书签,并把页面文本框中的内容替换进去 range = wordapp.activedocument.Bookmarks("sname").Range; range.text = document.form1.txtName.value; range = wordapp.activedocument.bookmarks("sage").range; range.text = document.form1.txtAge.value; range = wordapp.activedocument.bookmarks("sschool").range; range.text = document.form1.txtSchool.value; //wordapp.activedocument.printout(); //关闭word文档 wordapp.activedocument.close(0); //关闭word应用程序 wordapp.quit(); } </script> </head> <body> <form id="form1" runat="server"> <div> 姓名:<asp:TextBox ID="txtName" runat="server"></asp:TextBox> <br /> 年龄:<asp:TextBox ID="txtAge" runat="server"></asp:TextBox> <br /> 学校:<asp:TextBox ID="txtSchool" runat="server"></asp:TextBox> <br /> <input id="Button1" type="button" value="ToBookMark" onclick="return Button1_onclick()" /><input runat=server id="Hidden1" name="Hidden1" type="hidden" /></div> </form> </body> </html> [/b] |
相关文章推荐
- js导出表格数据到word、excel
- 关于js操作word和excel,js导出word和excel的若干方法汇总[转]
- 关于js操作word和excel,js导出word和excel的若干方法汇总[转]
- js导出表格到word及excel(ie only)
- js导出到word excel .
- JS 导出Excel,Word
- js将html中的内容导出word、或者excel文件的方法
- 网页内容导出word/excel的js代码
- 网页内容导出word/excel的js代码
- js导出表格到word及excel(ie only) 【转载】
- js 导出到word,excel
- JS 合并列,导出excel,word
- js 导出Excel和Word
- js将html中的内容导出word、或者excel文件的方法
- js的导出Excel,Word,pdf的实现以及服务器端生成pdf的实现
- javascript实现WEB页面导出为EXCEL或WORD文档的方法
- 纯前端利用 js-xlsx 实现 Excel 文件导入导出功能示例
- [转]纯js导出json到excel(支持chrome)
- js导出excel
- JavaScript将Web页面内容导出到Word及Excel的方法