首 页 | 网页模板 | 教程 | 源码下载 | 书籍下载 | 图片素材 | 字体 | JAVA特效 | FLASH源码 | 软件 | 矢量 | 论坛 | 其它 |
设为主页
加入收藏
联系站长
平面设计 | 网页制作 | 程序编写 | 数 据 库 | 媒体动画 | 网络冲浪 | 服务器相关 |
当前在线
广告:P4服务器电信机房6999/年即送产权 | 疾风下载
将DataGrid输出到Excel文件
2005-10-27 9:34:12  作者:模板天下收集整理  来源:未知 网友评论 0 条 论坛
  

在Web From上输出数据到Excel有两种方法,一个是有数据库直接导出;另外一个方法是由DataGrid直接输出到Excel文件。下面得代码实现了这两个功能。注意:在使用时要引用Microsoft Office Web Components 9.0 COM组件,另外注意设置要保存文件得目录具有匿名可修改的权限。

DataGridToExcel.aspx

<%@ Page Language="vb" EnableViewState="False" AutoEventWireup="false" Codebehind="DataGridToExcel.<a href="http://www.chinaitpower.com/Dev/Web/Asp/index.html" target="_blank">asp</a>x.vb" Inherits="<a href="http://www.chinaitpower.com/Dev/Web/Asp/index.html" target="_blank">asp</a>xWeb.mengxianhui.com.DataGridToExcel"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <title id="mengxianhui" runat="server"></title> <meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0"> <meta name="CODE_LANGUAGE" content="Visual Basic 7.0"> <meta name="vs_defaultClientScript" content="JavaScript"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> </HEAD> <!-- '**************************************************************** '* mbsky ver1.0 '* 模板天下下载系统 Ver1.0 '* 模板天下,商业模板, '* 版权所有: 模板天下(MbSky.Com) '* 程序制作: mbsky&阿C '* 联系方式: email:Ewangu@163.com '* 主页地址: http://www.mbsky.com 模板天下 '* 交流论坛: http://www.mbsky.com/bbs/ '**************************************************************** '* mbsky ver1.0 '* Copyright 2002-2004 mbsky.com - All Rights Reserved. '**************************************************************** --> <div id=hint style="display:none">&nbsp;</div> <body MS_POSITIONING="GridLayout" style="FONT-SIZE:9pt"> <form id="Form1" method="post" runat="server"> <<a href="http://www.chinaitpower.com/Dev/Web/Asp/index.html" target="_blank">asp</a>:Label id="Label1" runat="server"></<a href="http://www.chinaitpower.com/Dev/Web/Asp/index.html" target="_blank">asp</a>:Label> <<a href="http://www.chinaitpower.com/Dev/Web/Asp/index.html" target="_blank">asp</a>:TextBox ID="xlfile" Runat="server"></<a href="http://www.chinaitpower.com/Dev/Web/Asp/index.html" target="_blank">asp</a>:TextBox> <br> <br> <<a href="http://www.chinaitpower.com/Dev/Web/Asp/index.html" target="_blank">asp</a>:Button ID="ExportDataBase2Excel" Runat="server" /> <<a href="http://www.chinaitpower.com/Dev/Web/Asp/index.html" target="_blank">asp</a>:Button ID="ExportDataGrid2Excel" Runat="server" /> <br> <<a href="http://www.chinaitpower.com/Dev/Web/Asp/index.html" target="_blank">asp</a>:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False" BorderColor="#CC9966" BorderStyle="None" BorderWidth="1px" BackColor="White" CellPadding="4"> <ItemStyle ForeColor="#330099" BackColor="White"></ItemStyle> <HeaderStyle Font-Bold="True" ForeColor="#FFFFCC" BackColor="#990000"></HeaderStyle> <Columns> <<a href="http://www.chinaitpower.com/Dev/Web/Asp/index.html" target="_blank">asp</a>:BoundColumn DataField="Title"></<a href="http://www.chinaitpower.com/Dev/Web/Asp/index.html" target="_blank">asp</a>:BoundColumn> <<a href="http://www.chinaitpower.com/Dev/Web/Asp/index.html" target="_blank">asp</a>:BoundColumn DataField="Author"></<a href="http://www.chinaitpower.com/Dev/Web/Asp/index.html" target="_blank">asp</a>:BoundColumn> </Columns> </<a href="http://www.chinaitpower.com/Dev/Web/Asp/index.html" target="_blank">asp</a>:DataGrid> </form> </body> </HTML>

DataGridToExcel.aspx.vb

Imports System Imports System.Data Imports System.Data.OleDb Imports OWC Public Class DataGridToExcel Inherits System.Web.UI.Page Protected WithEvents xlfile As System.Web.UI.WebControls.TextBox Protected WithEvents DataGrid1 As System.Web.UI.WebControls.DataGrid Protected WithEvents ExportDataGrid2Excel As System.Web.UI.WebControls.Button Protected WithEvents ExportDataBase2Excel As System.Web.UI.WebControls.Button Protected WithEvents Label1 As System.Web.UI.WebControls.Label Protected mengxianhui As New HtmlGenericControl() Private cnn As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="_ + Server.MapPath("Test.mdb")) Private <a href="http://www.chinaitpower.com/Dev/DataBase/MsSql/index.html" target="_blank">sql</a> As OleDbCommand = New OleDbCommand("SELECT TOP 50 Title,Author FROM Document", cnn) #Region " Web Form Designer Generated Code " 'This call is required by the Web Form Designer. <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() End Sub Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs)_ Handles MyBase.Init 'CODEGEN: This method call is required by the Web Form Designer 'Do not modify it using the code editor. InitializeComponent() End Sub #End Region Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)_ Handles MyBase.Load Label1.Text = "请输入要保存得<a href="http://www.chinaitpower.com/Soft/Tools/File/index.html" target="_blank">文件</a>名字:" ExportDataGrid2Excel.Text = "由DataGrid生成Excel<a href="http://www.chinaitpower.com/Soft/Tools/File/index.html" target="_blank">文件</a>" ExportDataBase2Excel.Text = "<a href="http://www.chinaitpower.com/Dev/DataBase/index.html" target="_blank">数据库</a>直接生成Excel<a href="http://www.chinaitpower.com/Soft/Tools/File/index.html" target="_blank">文件</a>" DataGrid1.Columns(0).HeaderStyle.HorizontalAlign = HorizontalAlign.Center DataGrid1.Columns(0).HeaderText = "文章名称" DataGrid1.Columns(1).HeaderText = "作者" DataGrid1.Columns(0).HeaderStyle.Font.Bold = True DataGrid1.Style.Add("font-size", "9pt") mengxianhui.InnerText = "【孟宪会之精彩世界】- 将DataGrid输出到Excel<a href="http://www.chinaitpower.com/Soft/Tools/File/index.html" target="_blank">文件</a>" Me.BindDataGrid() End Sub Private Sub BindDataGrid() cnn.Open() Dim reader As OleDbDataReader = <a href="http://www.chinaitpower.com/Dev/DataBase/MsSql/index.html" target="_blank">sql</a>.ExecuteReader() Me.DataGrid1.DataSource = reader Me.DataGrid1.DataBind() reader.Close() cnn.Close() End Sub Private Sub WriteDataGrid2Excel() Dim xlsheet As New SpreadsheetClass() cnn.Open() Dim reader As OleDbDataReader = Me.<a href="http://www.chinaitpower.com/Dev/DataBase/MsSql/index.html" target="_blank">sql</a>.ExecuteReader() Dim numbercols As Integer = reader.FieldCount Dim row As Integer = 2 Dim i As Integer = 0 ' 输出标题 For i = 0 To numbercols - 1 xlsheet.ActiveSheet.Cells(1, i + 1) = reader.GetName(i).ToString() Next ' 输出字段内容 While (reader.Read()) For i = 0 To numbercols - 1 xlsheet.ActiveSheet.Cells(row, i + 1) = reader.GetValue(i).ToString() Next row = row + 1 End While reader.Close() cnn.Close() Try xlsheet.ActiveSheet.Export(Server.MapPath(".") + "\Images\" + Me.xlfile.Text,_ OWC.SheetExportActionEnum.ssExportActionNone) Catch e As System.Runtime.InteropServices.COMException Response.Write("错误:" + e.Message) End Try End Sub Private Sub WriteDataGrid2Excel2() Dim xlsheet As New SpreadsheetClass() Dim i As Integer = 0 Dim j As Integer = 0 'Response.End() ' 输出标题 Dim oItem As DataGridColumn For Each oItem In DataGrid1.Columns xlsheet.ActiveSheet.Cells(1, i + 1) = oItem.HeaderText 'xlsheet.ActiveSheet.Range(xlsheet.ActiveSheet.Cells(1, 1),_ xlsheet.ActiveSheet.Cells(1, i + 1)).Font.Bold = True '设置格式 xlsheet.Range(xlsheet.Cells(1, 1), xlsheet.Cells(1, i + 1)).Font.Bold = True xlsheet.Range(xlsheet.Cells(1, 1), xlsheet.Cells(1, i + 1)).Font.Color = "red" i = i + 1 Next Dim numbercols As Integer = DataGrid1.Items.Item(0).Cells.Count ' 输出字段内容 For j = 0 To DataGrid1.Items.Count - 1 For i = 0 To numbercols - 1 xlsheet.Range(xlsheet.Cells(2, 2), xlsheet.Cells(j + 2, i + 1)).Font.Color = "blue" 'xlsheet.Range("A2:B14").WrapText = True xlsheet.Range(xlsheet.Cells(2, 1), xlsheet.Cells(j + 2, i + 1)).AutoFitColumns() xlsheet.ActiveSheet.Cells(j + 2, i + 1) = DataGrid1.Items.Item(j).Cells(i).Text.Replace("&nbsp;", " ") Next Next Try xlsheet.ActiveSheet.Export(Server.MapPath(".") + "\Images\" + Me.xlfile.Text,_ OWC.SheetExportActionEnum.ssExportActionNone) Catch e As System.Runtime.InteropServices.COMException Response.Write("错误:" + e.Message) End Try End Sub Private Sub ExportDataGrid2Excel_Click(ByVal sender As Object,_ ByVal e As System.EventArgs) Handles ExportDataGrid2Excel.Click If (Me.xlfile.Text.Trim() <> "") Then Me.WriteDataGrid2Excel2() End If End Sub Private Sub ExportDataBase2Excel_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles ExportDataBase2Excel.Click If (Me.xlfile.Text.Trim() <> "") Then Me.WriteDataGrid2Excel() End If End Sub End Class
共分1页  [1] 
>> 相关文章

关于网站 | 客服中心 | 服务条款 | 友情链接 | 广告联系 | 本站历程 | 网站导航

吉ICP备05000107号