导出pdf文件、导出excel文件和打印

本文介绍如何使用jQuery插件实现网页内容的导出功能,包括导出为PDF、导出为Excel以及网页打印的方法。详细展示了所需引入的文件及具体设置步骤,适用于前端开发者快速实现数据导出需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   此处所介绍的是利用一些jQuery插件实现导出pdf文件、导出excel文件和打印的方法。

  1.导出pdf文件

  (1)需要导入两个文件:jspdf.debug.js,html2canvas.js

     

	    <script src="js/jspdf.debug.js"></script>
		<script src="js/html2canvas.js"></script>
		<script src="js/exportPDF.js"></script>

  (2)写一个js文件,用于设置一些导出pdf的具体设置。

      exportPDF.js

var downPdf = document.getElementById("btn-html2canvas");
    downPdf.onclick = function () {
        html2canvas(
        	   //打印出content所包含的元素
                document.getElementById("content"),
                {
                    dpi: 172,//导出pdf清晰度
                    onrendered: function (canvas) {
                        var contentWidth = canvas.width;
                        var contentHeight = canvas.height;

                        //一页pdf显示html页面生成的canvas高度;
                        var pageHeight = contentWidth / 592.28 * 841.89;
                        //未生成pdf的html页面高度
                        var leftHeight = contentHeight;
                        //pdf页面偏移
                        var position = 0;
                        //html页面生成的canvas在pdf中图片的宽高(a4纸的尺寸[595.28,841.89])
                        var imgWidth = 595.28;
                        var imgHeight = 592.28 / contentWidth * contentHeight;

                        var pageData = canvas.toDataURL('image/jpeg', 1.0);
                        var pdf = new jsPDF('', 'pt', 'a4');

                        //有两个高度需要区分,一个是html页面的实际高度,和生成pdf的页面高度(841.89)
                        //当内容未超过pdf一页显示的范围,无需分页
                        if (leftHeight < pageHeight) {
                            pdf.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight);
                        } else {
                            while (leftHeight > 0) {
                                pdf.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight)
                                leftHeight -= pageHeight;
                                position -= 841.89;
                                //避免添加空白页
                                if (leftHeight > 0) {
                                    pdf.addPage();
                                }
                            }
                        }
                        pdf.save('动态简历.pdf');
                    },
                    //背景设为白色(默认为黑色)
                    background: "#fff"  
                })
    }

 

    2.导出excel

    此处利用query.table2excel.js来导出excel

    示例

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>导出表格</title>
		<script src="js/jquery-3.3.1.min.js"></script>
		<script src="js/jquery.table2excel.js"></script>
		<script language="JavaScript" type="text/javascript">
			$(document).ready(function() {
				$("#btnExport").click(function() {
					$("#table_excel").table2excel({
						exclude: ".noExl", //过滤位置的 css 类名,不被导出的表格行的CSS class类    
						filename: "导出excel测试" + ".xls", //导出的excel的文件名称    
						name: "Excel Document Name.xlsx", //// 导出的Excel文档的名称
						exclude_img: true, //是否导出图片。
						exclude_links: true, //是否导出超链接
						exclude_inputs: true //是否导出输入框中的内容

					});
				});
			});
		</script>
	</head>

	<body>
		<div>
			<button type="button" id="btnExport" onclick="method5('table_excel')">导出Excel</button>
		</div>
		<div id="myDiv">
			<table id="table_excel" width="100%" border="1" cellspacing="0" cellpadding="0">
				<tr>
					<td colspan="5" align="center">HTML表格导出Excel</td>
				</tr>
				<tr>
					<td>书名</td>
					<td>作者</td>
					<td>出版社</td>
					<td>价格</td>
					<td>类别</td>
				</tr>
				<tr>
					<td>JAVA编程思想</td>
					<td>Bruce Eckel</td>
					<td>机械工业出版社</td>
					<td>86.9</td>
					<td>编程</td>
				</tr>
				<tr>
					<td>JAVA核心技术 卷1</td>
					<td>凯 S.霍斯特曼</td>
					<td>机械工业出版社</td>
					<td>98</td>
					<td>编程</td>
				</tr>
			</table>
		</div>
	</body>
</html>

   3.打印

   

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>打印</title>
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script language="javascript" src="js/jquery.jqprint-0.3.js"></script>
<script src="http://www.jq22.com/jquery/jquery-migrate-1.2.1.min.js";></script>
<script language="javascript">
    function dayin() {
         $("#content").jqprint();
    }
</script>
</head>
  
<body>
    <div id="content">
         <table>
             <tr>
                 <td>test</td>
             </tr>
         </table>
    </div>
    <input type="button" onclick="dayin()" value="打印" />
</body>
</html>

     

在iTextSharp上做了个二次开发,导出PDF更方便,iTextExport.dll是自己做的二次开发库,里面主要有三个类:PdfExport、ExcelExport、ReportPrint,它们分别实现导出Pdf导出Excelrdlc报表的直接打印预览,基本调用方法: 1、PdfExport exp = new PdfExport(fileName, DataTable | DataGridView); exp.ExportTitle = "标题"; exp.[其它属性设置]=; exp.ExecuteExport(); 2、ExcelPdf类似调用 3、如果要一次导出多个,可以如下: ExportFactory.Instance().ExportList.Add(exp); ExportFactory.Instance().ExportList.Add(exp); ExportFactory.Instance().ExportList.Add(exp); ....... ExportFactory.Instance().DoExport(); 4、多数据源报表打印 ReportPrint rpt = new ReportPrint("报表文件或者嵌入的报表资源名"); //是否是嵌入报表 rpt.IsEmbeddedReport = true; //是否自动调整数据源,对于打印的数据表报表定义中的字段不同时 rpt.AutoAdjustData = false; //是否报表中含有多个数据源 rpt.IsMultiDataSource = true; rpt.ReportDataSources.Add(new ReportDataSource("T1",dt1)); rpt.ReportDataSources.Add(new ReportDataSource("T2", dt2)); rpt.StartPrint(); rpt.Dispose(); 5、单数据源报表打印 //报表参数 List _paras = new List(); _paras.Add(new ReportParameter("rptLsh", "A1")); _paras.Add(new ReportParameter("rptDjh", "A2")); ReportPrint rpt = new ReportPrint("Test.rdlc", dt); rpt.IsEmbeddedReport = false; rpt.AutoAdjustData = false; rpt.ReportParameters = _paras; rpt.StartPrint();
用友华表CELL插件Demo 用友华表的CELL插件是一款基于ActiveX技术的解决中国式报表显示打印的第三方控件, 其它第三方ActiveX控件一样,用友华表CELL插件只能运行在客户端,只能使用JAVASCRIPT、VBSCRIPT客户端语言操纵控件,进行直接处理客户端数据,而客户的数据都存放在服务器端,这势必要求客户端的ActiveX控件与服务器端进行数据交互. 针对客户端ActiveX控件如何与服务器端进行数据交互,本文介绍了实现客户端与服务器端数据交互必须的两个步骤如下: 1、将客户端CELL插件中的数据上传至服务器端的数据库. 方法:在客户端通过Cell的编程接口SaveToBuffer得到数据保存在XML,使用XMLHTTP技术将数据传至服务器并保存在服务器数据库. 2、将服务器端数据库中的数据显示在客户端的CELL插件中. 方法:连接服务器数据库得到数据,通过Response对象将数据传送到客户端,再利用Cell的编程接口ReadFromBuffer展示在客户端. Cell 插件用于开发B/S结构程序,使用Asp, Asp.net, Jsp, VbScript, JavaScript等语言开发,可以在浏览器中直接打印报表(非IE打印),带有国际化数字签名,让用户使用更方便,更安全。 • 具备Cell组件的所有特色功能,在浏览器中提供报表的显示打印 • 网络报表界面美观,大大改善了浏览器中报表的输出效果 • 带有国际化数字签名,让用户使用的更安全、更放心 • 可将报表文件另存为华表文件或者Excel文件,从而可以进行进一步加工 • 支持ASP、ASP.Net、JSP、VBScript、JavaScript等语言开发 在开发工具中将Cell插件引入至工程,然后将Cell插件拖至页面中即可开始报表设计。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值