巧用asp实现web数据统计报表和打印

巧用ASP实现Web数据统计、报表和打印
1、引言
随着Internet的飞速发展,基于Web开发的业务应用系统越来越多,如办公自动化、电子商务和管理信息系统(MIS)等。

这些Web业务应用系统经常涉及到数据的统计、报表和打印。

ASP在实施动态交互和生成动态页面方面具有很大的优势,但在处理复杂数据统计、报表和打印时却遇到不小的麻烦。

本文阐述一种利用ASP实现Web数据统计、报表的基本思路和实现方法,同时提供一种巧妙调用Word打印报表的解决方案。

2、应用实例
假设有一家公司利用网络MIS系统对公司员工进行管理,必然会涉及到各部门的员工统计。

为了简单起见,假设最终的统计报表如下:公司员工统计表部门合计员工姓名市场部2张三李四研发部3王五赵六刘七员工合计5 与传统单机MIS系统相比,在网络MIS系统中使用ASP实现以上数据统计、报表和打印会遇到以下问题:(1)数据统计时需要按部门进行分类统计,同时要记下各部门员工的具体名单。

(2)报表生成时需按具体要求动态绘制几行几列表格,同时在适当的地方保持空白。

(3)表格打印可以简单地按网页打印,但效果不好,而且不容易控制。

3、实现方法
简述基于Web的业务应用一般采用三层结构,客户端是普
通的Web浏览器,中间业务逻辑应用层存放于Web服务器上,由Web服务器上的数据库接口访问后台数据库。

利用ASP实现Web数据统计、报表和打印的过程如图所示:浏览器HTML VBScript 统计报表Word 对象Web服务器业务逻辑实现数据库访问接口数据库Word本地打印(1)客户端向Web服务器发送数据统计请求。

(2)Web服务器执行SQL语句,从后台数据库取得统计数据,在页面上动态
生成报表。

(3)在客户端运行脚本,使用VBScript脚本函数CreateObject在本地创建Word的Document对象的实例,也就是在客户端创建Word文档,设定表格属性,然后将页面上的报表数据填入本地Word表格,最后保存文档,执行本地Word打印。

4、实现过程分析
(1)数据库连接首先建立数据库(data.mdb),简单的员工资料表(personnel)结构如下:personnel:department,文本;name,文本;然后建立一个ODBC数据源(DSN),利用DSN指向ODBC数据库。

(2)程序代码分析(在此只分析统计报表程序tongji.asp)//以下显示表格标题和输出
表头公司员工统计表//注意:此处标明表格的id为data 部门合计员工姓名//如果flag为0,表示该部门是首次出现,
表格此处就应该输出部门名称,部门员工合计人数//如果flag不为0,表示该部门不是首次出现,表格此处就应该输出空白//无论该部门是否首次出现,此处输出员工姓名//表格最后一行输出总人数合计员工合计打印"> //点击“打印”按钮,调用vbscript函数buildDoc生成本地Word文档,实现本地打印。

//以下VBScript代码实现buildDoc函数
5、结束语
以上程序在Windows2000及IIS5.0下运行通过,数据库采用Access2000。

执行打印之前,需要将浏览器的安全级别设为低,或在中级安全级别下将ActiveX控件设为启用。

该方法的优点在于实现统计报表十分简单,调用Word打印非常方便,并且可以按用户要求对表格属性进行设置;不足之处是需要调节浏览器的安全设置,且不支持图片和特殊字体的打印,同时客户端必须安装Microsoft Word软件。

合集下载

Web系统页面打印技术实现与分析

Web系统页面打印技术实现与分析

Web系统页面打印技术实现与分析1 Web页面打印概述应用WEB化,不论对开发商,还是对用户来说,实在是一种很经济的选择,因为基于WEB 的应用,客户端的规则很简单,容易学习,容易维护,容易发布。

在WEB系统中,打印的确是个烦人的问题。

要么自己开发打印控件,如果项目时间紧,肯定来不及。

这对程序员来说,因为浏览器的局限性,却要面对很多挑战。

怎么样来进行基于WEB的套打,就是这么一个令多数程序员头痛不已的问题。

基于WEB的套打,难度在于要将浏览器中呈现的HTML,精确地打印到票据中,而且能够实现对分页位置的控制。

本文将介绍常用的Web打印与套打方案,同时提供一些免费的打印控件,供大家学习参考。

2 常用Web页面打印方案2.1 浏览器的打印功能这种方案的优势是不需要对浏览器作任何扩充,是最简单的办法,但问题也最多,如:1. 不能精确分页。

浏览器一般是根据用户设置的页面大小,web页面的内容多少,来自行决定分页位置,程序员很难控制。

会有页脚页眉干扰。

2. 不能准确对齐边边距及打印文字。

3. 不能解决连续打印。

比如,不是仅打印一张票据,而是连续一次打印若干个票据。

2.2 使用PDF文件用这种方式,就是从服务器端下载一个pdf文件流,在IE中用adobe插件打开,然后用adobe 的打印菜单进行打印,虽然这种方案,也能实现精确套打,但需要下载adobe插件。

这是国外报表工具经常推荐的一种打印方法,但在pdf不那么普及的中国,这种方案不是最好选择。

2.3 采用Applet方式采用Applet方式,分页或精确打印,都可以做到完美,但缺点也很明显,表现在:1. 安装Applet成本巨大。

需要下载十几M的文件。

Applet本身可能并不大,但运行Applet所需的jre一般至少10几M(jre1.4.2 ,15.45M)。

用户需要极大的耐心,来进行打印。

2. 打印报表时,需要重新向服务器检索数据,效率低。

因为Applet方案,一般采用html方式呈现数据,打印时Applet必须向服务器检索同一张票据的数据,看上去,是打印了当前页的票据,实际上,Applet根本不会用当前html页的数据来打印,而是向服务器下载数据到Applet中来打印。

Web系统页面打印技术实现与分析V1.0

Web系统页面打印技术实现与分析V1.0

Web系统页面打印技术实现与分析V1.0目录1 WEB页面打印概述 (1)2 常用WEB页面打印方案 (2)2.1浏览器的打印功能 (2)2.2使用PDF文件 (2)2.3采用A PPLET方式 (3)2.4IEW EB B ROWSER+J A V ASCRIPT (3)2.5利用WORD或EXCEL来实现 (3)2.6使用第三方控件 (3)3 WEB打印控件介绍 (4)3.1S CRIPT X (4)3.2DLP RINTER (4)3.3墙外打印控件 (4)3.4L ODOP (5)3.5W EB P RINT(商业) (5)4 WEB页面打印应用实例 (6)4.1J A V ASCRIPT自带函数 (6)4.2IEW EB B ROWSER组件 (6)4.3通过E XCEL实现页面打印 (7)4.4使用S CRIPT X控件 (8)5 WEB页面打印技巧 (10)5.1隐藏打印的W EB元素 (10)5.2实现简单的页面局部打印 (12)5.2.1 Javascript实现 (12)5.2.2 WebBrowser实现 (12)5.3禁止出现页眉页脚 (14)1Web页面打印概述应用WEB化,不论对开发商,还是对用户来说,实在是一种很经济的选择,因为基于WEB的应用,客户端的规则很简单,容易学习,容易维护,容易发布。

在WEB系统中,打印的确是个烦人的问题。

要么自己开发打印控件,如果项目时间紧,肯定来不及。

这对程序员来说,因为浏览器的局限性,却要面对很多挑战。

怎么样来进行基于WEB的套打,就是这么一个令多数程序员头痛不已的问题。

基于WEB的套打,难度在于要将浏览器中呈现的HTML,精确地打印到票据中,而且能够实现对分页位置的控制。

本文将介绍常用的Web打印与套打方案,同时提供一些免费的打印控件,供大家学习参考。

2常用Web页面打印方案2.1浏览器的打印功能这种方案的优势是不需要对浏览器作任何扩充,是最简单的办法,但问题也最多,如:1. 不能精确分页。

基于ASP .NET的自定义SQL报表系统设计与实现

基于ASP .NET的自定义SQL报表系统设计与实现

基于的自定义SQL报表系统设计与实现摘要:利用编程技术,通过对自定义SQL语句查询结果的分析,结合的特点,将SQL语句涉及的列保存起来,并根据需要设置对应的格式,在展现时生成对应的控件呈现在用户面前,用户更改控件值,发起查询请求后,系统将根据控件类型自动生成带条件的SQL语句,最后把执行结果呈现在表格控件中,实现了自定义SQL报表的管理与展现。

关键词:;;SQL;自定义报表0 引言在企业日常数据维护中,经常会遇到从各个系统提取数据的情况。

一般来说,数据管理员会登录PL/SQL Developer、SQL Server Management Studio等软件,来连接数据库,编写具体的查询SQL语句,执行SQL语句并导出为Excel文件,然后交给需求者。

在每天的工作中,需要几次甚至几十次地重复上述操作,工作效率非常低。

为解决此问题,本文提出了一个可行的解决方案,开发了基于数据源的自定义SQL查询系统。

1 关键技术1.1 数据库访问技术[1]是.Net Framework提供的针对数据库访问的通用解决方案,提升了底层数据库访问的扩展性、安全性,并优化了执行效率。

它通过网络对数据库进行访问。

这种数据库访问机制能够以连接池的形式管理数据库连接,合理分配数据访问请求,同时能够提供数据缓存,改进数据共享机制,所以它的出现使得数据库编程更加容易。

包含两个主要成员:DataSet和Data Providers[2],Data Set主要负责对数据的操作,而Data Providers则主要负责数据访问。

DataSet是数据在内存中的表示形式。

它包括一个或者多个DataTable对象,DataTable对象由数据行(Data Row)、数据列(Data Column)、主键、外键、约束以及有关Data Table对象组成。

DataSet 能够被所有的Data Providers调用。

Data Providers是数据库和应用程序之前的纽带,接收到命令后,从数据源读取数据返回结果,向数据源提交数据,在数据源上执行一系列的命令。

利用VBA实现自动打印报表

利用VBA实现自动打印报表

利用VBA实现自动打印报表自动化报表打印是许多企业和机构所面临的一个重要任务。

为了提高工作效率和准确性,利用VBA(Visual Basic for Applications)编程语言可以实现报表的自动打印和批量处理。

本文将介绍如何使用VBA编写自动打印报表的程序。

一、编写VBA代码前的准备工作在开始编写VBA代码之前,我们需要确保计算机已安装Microsoft Office 套件,并打开需要进行自动打印报表的Excel文件。

在Excel文件中,我们需要确保报表数据已准备好,并已按照需要的样式进行整理。

二、进入VBA编辑器在Excel文件中,按下“Alt”和“F11”键,即可打开VBA编辑器界面。

在左侧的项目窗格中,双击需要编写代码的工作表(Sheet)或工作簿(Workbook)。

三、编写VBA代码1. 设置打印区域:在VBA编辑器中的代码窗格中,输入以下代码:```vbaSub SetPrintArea()Dim ws As WorksheetSet ws = ThisWorkbook.Worksheets("Sheet1") '替换为需要打印的工作表名With ws.PageSetup.PrintArea = .UsedRange.AddressEnd WithEnd Sub```上述代码中,“Sheet1”是需要打印的工作表名称,你可以根据实际情况进行替换。

2. 自动打印报表:在VBA编辑器中的代码窗格中,输入以下代码:```vbaSub AutoPrint()Dim ws As WorksheetDim LastRow As LongDim i As LongSet ws = ThisWorkbook.Worksheets("Sheet1") '替换为需要打印的工作表名LastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).RowWith wsFor i = 1 To LastRowIf .Cells(i, 1).Value <> "" Then.PrintOut '直接打印当前工作表End IfNext iEnd WithEnd Sub```上述代码中,“Sheet1”是需要打印的工作表名称,请根据实际情况进行替换。

Web报表工具FineReport自定义打印方法汇总

Web报表工具FineReport自定义打印方法汇总

Web报表工具FineReport自定义打印方法汇总简述:在使用报表软件进行打印的时候,对于打印的需求总是灵活多变的,文章主要介绍了Web报表工具FineReport自定义打印的几种方法。

JS调用FineReport打印方法•问题描述•调用方法•报表内置打印方法•示例▪Flash打印为例效果▪实现代码1. 问题描述报表集成到项目里面,不需要预览模板就能够直接打印报表;或者自定义Web页面里面,使用自定义打印按钮直接调用FineReport 内部打印方法。

2. 调用方法先引入FineReport内部的js文件,然后调用js文件中定义好的内部打印方法,如Flash打印方式调用方法如下:1. <script type="text/javascript" src="/WebReport/ReportS erver?op=emb&resource=finereport.js"></script> //调用报表内部finereport.js文件2. <link rel="stylesheet" type="text/css" href="/WebRepor t/ReportServer?op=emb&resource=finereport.css" /> //定义弹出打印对话框的样式3. <script type="text/javascript">4. FR.doURLFlashPrint(url); //url为打印的报表路径5. </script>3. 报表内置打印方法FineReport提供了三种客户端打印方式,各自的调用方法如下(三种方法传入的参数是一致的):具体三种打印效果的介绍可参考文档各打印方式的对比介绍。

在ASP中怎么把页面中的数据导出到EXCEL

在ASP中怎么把页面中的数据导出到EXCEL

使用asp怎样将数据导出到excel文件 Web注意:两个函数中的“data“是网页中要导出的table的 id<input type="hidden" name="out_word" onclick="vbscript:buildDoc" value="导出到word" class="notPrint"><input type="hidden" name="out_excel" onclick="AutomateExcel();" value="导出到excel" class="notPrint">导出到Excel代码<SCRIPT LANGUAGE="JavaScript"><!--function AutomateExcel(){// Start Excel and get Application object.var oXL = new ActiveXObject("Excel.Application");// Get a new workbook.var oWB = oXL.Workbooks.Add();var oSheet = oWB.ActiveSheet;var table = document.all.data;var hang = table.rows.length;var lie = table.rows(0).cells.length;// Add table headers going cell by cell.for (i=0;i<hang;i++){for (j=0;j<lie;j++){oSheet.Cells(i+1,j+1).Value = table.rows(i).cells(j).innerText;}}oXL.Visible = true;erControl = true;}//--></SCRIPT>导出到Word代码<script language="vbscript">Sub buildDocset table = document.all.datarow = table.rows.lengthcolumn = table.rows(1).cells.lengthSet objWordDoc = CreateObject("Word.Document")'objWordDoc.Application.Documents.Add theTemplate, FalseobjWordDoc.Application.Visible=TrueDim theArray(20,10000)for i=0 to row-1for j=0 to column-1theArray(j+1,i+1) = table.rows(i).cells(j).innerTEXTnextnextobjWordDoc.Application.ActiveDocument.Paragraphs.Add.Range.InsertBefore("综合查询结果集") //显示表格标题objWordDoc.Application.ActiveDocument.Paragraphs.Add.Range.InsertBefore("") Set rngPara = objWordDoc.Application.ActiveDocument.Paragraphs(1).Range With rngPara.Bold = True //将标题设为粗体.ParagraphFormat.Alignment = 1 //将标题居中 = "隶书" //设定标题字体.Font.Size = 18 //设定标题字体大小End WithSet rngCurrent = objWordDoc.Application.ActiveDocument.Paragraphs(3).RangeSet tabCurrent = ObjWordDoc.Application.ActiveDocument.Tables.Add(rngCurrent,row,column)for i = 1 to columnobjWordDoc.Application.ActiveDocument.Tables(1).Rows(1).Cells(i).Range.InsertAfter theArray(i,1)objWordDoc.Application.ActiveDocument.Tables(1).Rows(1).Cells(i).Range.Paragraph Format.alignment=1nextFor i =1 to columnFor j = 2 to rowobjWordDoc.Application.ActiveDocument.Tables(1).Rows(j).Cells(i).Range.InsertAfter theArray(i,j)objWordDoc.Application.ActiveDocument.Tables(1).Rows(j).Cells(i).Range.Paragraph Format.alignment=1NextNextEnd Sub</SCRIPT>在ASP中怎么把页面中的数据导出到EXCEL直接读SQL库,我想也可以用来解决你的问题,(同理:页面上显示的内容当然也是读库的,除非你是静态的那算了)<!--#include file="../opendb.asp"--><!--写链接的事不用我弄了吧?--><title>生成报表</title><%dim conn,strconnset conn=server.CreateObject("adodb.connection")conn.Open ConnStrdim rs,sql,filename,fs,myfile,xSet fs = server.CreateObject("scripting.filesystemobject")filepath=Request.ServerVariables("APPL_PHYSICAL_PATH")filename = filepath&"temp_xls\"&year(now)&month(now)&day(now)&".xls"if fs.FileExists(filename) thenfs.DeleteFile(filename)end ifset myfile = fs.CreateTextFile(filename,true)Set rs = Server.CreateObject("ADODB.Recordset")sql = "select * from jdxx"rs.Open sql,conn,1,1if rs.EOF and rs.BOF thenelsedim strLine,responsestrstrLine=""For each x in rs.fieldsstrLine = strLine & & chr(9)Nextmyfile.writeline strLineDo while Not rs.EOFstrLine=""for each x in rs.FieldsstrLine = strLine & x.value & chr(9)nextmyfile.writeline strLiners.MoveNextloopend ifrs.Closeset rs = nothingremotefile="http://xxx.xxx.x.xxx/temp_xls/"&year(now)&month(now)&day(now)&".xls" response.write "<font size=2 color=blue>报表巳生成,<a href="&remotefile&">请点击这里下载该报表!</a></font>"%>在ASP中怎么把页面中的数据导出到EXCEL<%@ LANGUAGE="VBSCRIPT" CODEPAGE="950"%><%'關鍵所在Response.ContentType = "application/vnd.ms-excel"Set conn=Server.CreateObject("ADODB.Connection")Set rs=Server.CreateObject("ADODB.Recordset")strconn = "Provider = SQLOLEDB; Data Source = 192.168.0.2; Uid=gt_bbs;Pwd=gt_bbs;DataBase=gt_bbs"conn.open strconnSQL="Select top 100 id,uid,uer,bm,zw,zb,gxrq,ip,be From Gt_user order by id desc"rs.Open SQL,conn,3,1if rs.eof and rs.bof thenResponse.Write"<div align=center><br>沒有任何記錄</div>"else%><TABLE cellSpacing=0 cellPadding=0 width="100%" border=1><TR><TD width=12% height="25" class=borderon>&nbsp;代 </TD> <TD width="11%" class=borderon>&nbsp; 名</TD><TD width="11%" class=borderon>&nbsp;部門</TD><TD width="14%" class=borderon>&nbsp; </TD><TD width="6%" class=borderon>&nbsp; 別</TD><TD width="16%" class=borderon>&nbsp; 登</TD><TD width="16%" class=borderon>&nbsp; 登 IP</TD> </TR></TABLE><TABLE width="100%" border=1 cellPadding=0 cellSpacing=0><%do while (Not RS.Eof) and (I<RS.PageSize)%><TR bgcolor=<%=bg2%>><TD class=all width=12% height=20 >&nbsp;<%=rs(1)%></TD> <TD width="11%" class=all>&nbsp;<%=rs(2)%></TD><TD width="11%" class=all>&nbsp;<%=rs(3)%></TD><TD width="14%" class=all>&nbsp;<%=rs(4)%></TD><TD width="6%" class=all>&nbsp;<%=rs(5)%></TD><TD width="16%" class=all>&nbsp;<%=rs(6)%></TD><TD width="16%" class=all>&nbsp;<%=rs(7)%></TD></TR><%Rs.MoveNextLoopend IFSet Conn = NothingSet Rs = Nothing%></TABLE>。

ASP.NET实现打印的方法小结

实现打印的⽅法⼩结⽹络打印概述◆B/S结构导致了Web应⽤程序中打印的特殊性。

◆程序运⾏在浏览器中,打印机在本地,⽽⽂件却可能在服务器上,导致了打印控制不是很灵活。

◆格式如何控制和定制等,是我们开发中可能会⾯对的问题。

打印⽂档的⽣成1、客户端脚本⽅式⼀般情况下,主要使⽤JS可以分析源页⾯的内容,将欲打印的页⾯元素提取出来,实现打印。

通过分析源⽂档的内容,可以⽣成打印⽬标⽂档。

优点:客户端独⽴完成打印⽬标⽂档的⽣成,减轻服务器负荷;缺点:源⽂档的分析操作复杂,并且源⽂档中的打印内容要有约定。

2、服务器端程序⽅式利⽤后台代码从数据库中读取打印源,⽣成打印⽬标⽂档。

当的页⾯⽣成时,还应适当考虑使⽤CSS来实现强制分页控制。

优点:可以⽣成内容⾮常丰富的打印⽬标⽂档,⽬标⽂档的内容的可控性强。

由于打印内容是从数据库中获取的,所以⽣成操作相对简单;缺点:服务器端负载⽐较⼤。

页⾯设置◆页⾯设置主要是指设置打印⽂档的页边距、页眉、页脚、纸张等内容。

页⾯设置将直接影响到打印⽂档版⾯的⽣成效果,所以它和打印⽂档的⽣成有着密切的关系。

⽐如:表格的⾏数、⼤⼩、位置、字体的⼤⼩等。

现有的技术是利⽤IE 6.0内置的打印模板⽅式来控制页⾯设置,其可以对打印⽬标⽂档产⽣⾮常⼤的影响。

打印模板可以控制页边距、页眉、页脚、奇偶页等内容,并可以将⽤户的设置取得,还可以将设置发送到服务器端。

打印模板技术可以⾃定预览窗⼝和打印格式,最⼤限度地影响⽬标⽂档和打印效果。

IE直接打印直接调⽤window.print或者webrower控件的ExecWB⽅法来打印。

优点:⽅便快捷,客户端⽆需任何设置即可。

缺点:打印控制不是很灵活。

如果直接调⽤。

window.print来打印页⾯,页⾯上别的元素也会被打印处理,页头页尾的格式也不好控制。

常⽤⽅法:⼤部分情况会把查询的结果绑定到DataGrid上来,然后打印DataGrid。

这种情况的打印⼀般来说格式⽐较固定简单,确定后基本不会再作更改。

asp各种关于打印的代码

Graphics g = Graphics.FromImage(temp);
Font f = new Font("宋体", 12);
Brush b = new SolidBrush(Color.Black);
protected System.Web.UI.WebControls.DataGrid MyDataGrid;
protected System.Web.UI.WebControls.Button btnSubmit;
protected System.Web.UI.HtmlControls.HtmlForm Form1;
g.DrawString(baseExpense, f, b, 219, 202);
g.DrawString(fine, f, b, 372, 202);
g.DrawString(upExpense, f, b, 486, 202);
string GetdSquery;
string id;
private void Page_Load(object sender, System.EventArgs e)
{
{
string date = lblDate.Text; //当前日期
string flowId = lblFlowId.Text; //流水号
string payDate = PayDate.Year.ToString() + "年" + PayDate.Month.ToString() + "月"; //应收年月
shineseExpense,
string payDate,

楚琳Web打印控件的使用说明修改版

楚琳Web打印控件的使用说明本报表控件为Activex控件,通过JavaScript语言进行调用。

本报表控件包含在PrintActivex.exe文件中,其报表预览和打印基本上可以达C/S架构的报表效果。

本报表控件提供了ASP,,PHP,JSP语言的示例,用户可以参照示例进行开发。

这些示例中核心为三个函数,为TableToStr、FileToStr、TablePictureToStr。

在实际开发中,请把此三个函数拷贝至程序中。

TableToStr函数是把数据集的内容转化为报表控件所需的XML字符串,对于JSP示例则需要修改一下JavaBean类中所对应的连接字符串。

FileToStr函数是把报表文件或图片转化为报表控件所需的字符串。

TablePictureToStr则把数据集中所对应的图片文件转化为报表控件所需的字符串。

报表控件的名称为WebPrint.WebPrintUnit,Version属性为版本号,有此属性便于用户自动检测更新。

ReportFileName属性,用于调用DesignReport函数编辑报表之前,指定报表的名称,以便上传服务器。

PrinterList属性,获取客户端本地已经安装的打印机列表,各打印机名称之间以“;”分隔。

此属性便于在网页上设置指定的打印机进行打印(有示例)。

Printer属性,可以指定打印时的打印机名称,对于打印预览方式,系统则把指定打印机设为首选打印机;对于直接打印,系统则把打印任务直接分配给指定打印机。

若为空则为默认打印机。

指定的打印机必须是客户端电脑已安装好的,本地打印机和网络打印机都可以,对于网络打印机的名称,注意“\”改为“\\”,比如:ObjPrintMange.Printer='\\\\192.168.1.88\\Epson LQ-300K'; ,若指定的打印机不存在,则还是默认的打印机。

pbPrint属性,为0则打印预览时隐藏按钮;pbLoad属性,为0则打印预览时隐藏按钮;pbSave属性,为0则打印预览时隐藏按钮;pbExport属性,为0则打印预览时隐藏按钮;pbZoom属性,为0则打印预览时隐藏按钮;pbFind属性,为0则打印预览时隐藏按钮;pbOutline属性,为0则打印预览时隐藏按钮;pbPageSetup属性,为0则打印预览时隐藏按钮;pbNavigator属性,为0则打印预览时隐藏按钮;pbExportQuick属性,为0则打印预览时隐藏按钮;LeftMargin属性,设置页面设置的左边距,单位为毫米;RightMargin属性,设置页面设置的右边距,单位为毫米;TopMargin属性,设置页面设置的上边距,单位为毫米;BottomMargin属性,设置页面设置的下边距,单位为毫米;PageSetURL属性,设置此属性,则在报表预览时,单击了按钮,在弹出的页面设置窗口后点击“确定”按钮时,通过Http的Post方式直接提交到所设置的URL页面,用户可以在URL处理用户所设置的页面设置的左边距、右边距、上边距、下边距。

asp.net生成Excel并导出下载五种实现方法

⽣成Excel并导出下载五种实现⽅法通过GridView(简评:⽅法⽐较简单,但是只适合⽣成格式简单的Excel,且⽆法保留VBA代码),页⾯⽆刷新aspx.cs部分复制代码代码如下:using System; using System.Collections; using System.Configuration; using System.Data; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Text; public partial class DataPage_NationDataShow : System.Web.UI.Page { private Data_Link link = new Data_Link(); private string sql; protected void Page_Load(object sender, EventArgs e) { Ajax.Utility.RegisterTypeForAjax(typeof(DataPage_NationDataShow)); } protected void btnExcel_Click(object sender, EventArgs e) { string strExcelName = "MyExcel"; strExcelName = strExcelName.Replace(@"/", ""); Data_Link link = new Data_Link(); string strSQL = this.hidParam.Value; DataSet ds = new DataSet(); ds = link.D_DataSet_Return(strSQL);//获得想要放⼊Excel的数据 gvExcel.Visible = true; gvExcel.DataSource = null; gvExcel.DataMember = ds.Tables[0].TableName; gvExcel.DataSource = ds.Tables[0]; gvExcel.DataBind(); ExportToExcel(this.Page, gvExcel, strExcelName); } protected void gvExcel_RowDataBound(object sender, GridViewRowEventArgs e) { } public override void VerifyRenderingInServerForm(Control control) { } /// <summary> /// ⼯具⽅法,Excel出⼒(解决乱码问题) /// </summary> ///<param name="page">调⽤页⾯</param> /// <param name="excel">Excel数据</param> /// <param name="fileName">⽂件名</param> public void ExportToExcel(System.Web.UI.Page page, GridView excel, string fileName) { try { foreach (GridViewRow row in excel.Rows) { for (int i = 0; i < row.Cells.Count; i++) { excel.HeaderRow.Cells[i].BackColor = System.Drawing.Color.Yellow; } } excel.Font.Size = 10; excel.AlternatingRowStyle.BackColor =System.Drawing.Color.LightCyan; excel.RowStyle.Height = 25; page.Response.AppendHeader("Content-Disposition", "attachment;filename=" + fileName); page.Response.Charset = "utf-8"; page.Response.ContentType = "application/vnd.ms-excel"; page.Response.Write("<meta http-equiv=Content-Type content=text/html;charset=utf-8>");excel.Page.EnableViewState = false; excel.Visible = true; excel.HeaderStyle.Reset(); excel.AlternatingRowStyle.Reset(); System.IO.StringWriter oStringWriter = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter); excel.RenderControl(oHtmlTextWriter);page.Response.Write(oStringWriter.ToString()); page.Response.End(); excel.DataSource = null; excel.Visible = false; } catch (Exception e) { } } }aspx部分复制代码代码如下:<head runat="server"> <script type="text/javascript"> //Excel DownLoad function excelExport(){ var hidText = document.getElementById("hidParam"); hidText.value = "some params"; document.getElementById("ExcelOutput").click(); } </script> </head> <body onload="pageInit()"> <form id="form1"runat="server"> <input type="button" value="EXCEL下载" style="width:100px;" onclick="excelExport()" id="excelBut" /><input id="hidParam" type="text" runat="server" style="display:none;"/> <asp:Button runat="server" ID="ExcelOutput"style="display:none" Text= "EXCEL出⼒" Width="0px" onclick="btnExcel_Click" UseSubmitBehavior="false"/><asp:GridView ID="gvExcel" runat="server" Height="95px" OnRowDataBound="gvExcel_RowDataBound" Visible="False"> </asp:GridView> </form> </body>在刚才的aspx.cs代码中复制代码代码如下:foreach (GridViewRow row in excel.Rows) { for (int i = 0; i < row.Cells.Count; i++) { excel.HeaderRow.Cells[i].BackColor = System.Drawing.Color.Yellow; } }这部分是给表头添加样式。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档