`
ava_chc2000
  • 浏览: 75785 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

JS打印和报表输出

阅读更多
一打印:

(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平台上的转换.

三.根据己有的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>

来自: http://hi.baidu.com/51buyhost/blog/item/ca9503951e580214d31b7034.html
分享到:
评论

相关推荐

    前端三剑客(html+css+js)加vue部分基础运用2

    前端三剑客(html+css+js)加vue部分基础运用2

    aiohttp-3.9.4-cp311-cp311-musllinux_1_1_aarch64.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    029-微信小程序-大好商城.zip

    029-微信小程序-大好商城.zip

    高分项目,基于Unity3D开发实现的情绪模拟游戏,内含完整源码+资源+unitypackage

    高分项目,基于Unity3D开发实现的情绪模拟游戏,内含完整源码+资源+unitypackage 模拟市民是情绪化的生物,而他们的情绪被心情指数牵动着。游戏中的互动能够带给模拟市民不同的心情指数,例如刷牙可能感到薄荷般的清新,置卫生于不顾则会觉得肮脏。各种心情指数都有相关的情绪强度,模拟市民当前的情绪,取决于他们拥有的心情指数。

    cryptography-1.9-cp36-cp36m-win_amd64.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    JavaScript 使用技巧.md

    JavaScript 是一种广泛使用的编程语言,主要用于网页开发,但也可以用于服务器端(如 Node.js)和各种其他环境。以下是一些 JavaScript 的使用技巧: 1. **使用模板字符串**: 使用反引号(```)可以创建模板字符串,这使得在字符串中嵌入变量或表达式变得更加容易。 ``` const name = "Kimi"; console.log(`Hello, ${name}!`); ``` 2. **箭头函数**: 使用箭头函数可以简化函数的编写,并且它们没有自己的 `this` 值。 ``` const add = (a, b) => a + b; ``` 3. **解构赋值**: 使用解构赋值可以快速从数组或对象中提取值并赋给变量。 ``` const [a, b] = [1, 2]; const { x, y } = { x: 1, y: 2 }; ``` 4. **使用 `const` 和 `let`**: 尽量使用 `const` 来声明只读变量,使用 `let` 来声明可变变

    aiohttp-3.7.1-cp36-cp36m-manylinux2014_x86_64.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    025-微信小程序-兵马俑小程序(含语音画册与实时导览).zip

    025-微信小程序-兵马俑小程序(含语音画册与实时导览).zip

    基于java+深度学习开发的农作物病虫害识别+APP软件+源码+项目解析+数据+模型训练+数据库(毕业设计&课程设计&项目开发)

    基于java+深度学习开发的农作物病虫害识别+APP软件+源码+项目解析+数据+模型训练+数据库,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 基于java+深度学习开发的农作物病虫害识别+APP软件+源码+项目解析+数据+模型训练+数据库,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 项目简介: 将Deep Learning图像识别技术和地图相册的实时全景结合融入app,让我们的app可以独自识别出相应病害。用户一旦遇到作物病害问题,可以直接拿出手机打开我们的「智农有道」并对植株叶片或者果实进行拍照,通过训练好的模型,app会自动匹配出相似度最高的疾病,对应详情和解决方法也会相应展示给用户,让用户更快速的诊断病害并找到解决防治方案。

    aiohttp-3.9.0b1-cp311-cp311-musllinux_1_1_aarch64.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    基于微信小程序的校园兼职系统(源码)

    基于微信小程序的校园兼职系统(源码)

    160套-2G-Web网站项目-HTML5源码合集-涵盖多行业网站(商业&科技&培训&商城&课设&毕设&网页简历等模板).7z

    HTML网站模板凭借其高度的灵活性和易用性,成为前端开发者的得力助手。这些模板通常预先设计好了页面的布局和样式,开发者可以直接在此基础上进行内容的填充和功能的开发,大大节省了从0到1的时间成本。同时,优质的HTML模板会经过多次的兼容性测试,确保在不同浏览器和设备上都能呈现出良好的视觉效果,提升了用户体验。你是否正在为网站项目寻找灵感与起点?现在,我们为你精心准备了160套、总容量高达2G的Web网站项目HTML5源码合集!无论你是需要搭建商业、科技、培训、商城类网站,还是用于课程设计、毕业设计、网页简历等,这里都能找到心仪的模板。每一套模板都经过精心设计和优化,让你轻松打造专业、美观的网站。快来查看这份宝藏资源,让你的项目事半功倍吧!

    《低成本开放式架构跌倒检测系统作为无线传感器网络实现》matlab代码.rar

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    cryptography-2.3.1-cp34-cp34m-win_amd64.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    毕设项目:基于CTP和Qt的可视化期货监控系统.zip

    该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

    RV1126 LVGL移植

    RV1126 LVGL移植

    aiohttp-3.8.0-cp39-cp39-musllinux_1_1_ppc64le.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    支持向量机磨损量预测附matlab代码.rar

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    基于SpringBoot和Vue员工信息管理系统(PC端+server端源码+MySQL脚本+环境部署步骤讲解+运行步骤讲解)

    服务宗旨:有任何问题私信我 适合人群:工作中项目需要、模板框架实战学习、大学毕业设计参考、找工作项目实战积累等等

    cryptography-1.3.4-cp35-cp35m-win_amd64.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

Global site tag (gtag.js) - Google Analytics