WEB开发网      婵傜晫鐝總钘夊瀻娴滎偓绱掓担鐘垫畱娑撯偓娴犺棄鍨庢禍顐fЦ閹存垳婊戦惃鍕娴犺棄濮╅崝娑崇幢鐠囧嘲鍨庢禍锟� ---閿曪拷
开发学院WEB开发ASP.NET 在asp.net中使用excel模板 阅读

在asp.net中使用excel模板

 2007-12-15 09:31:06 来源:WEB开发网 閵嗭拷閸戝繐鐨€涙ぞ缍�婢х偛銇囩€涙ぞ缍�閵嗭拷  閸忚櫕鏁炴Λ娆愬盁閸楀洨娈戝顔煎触
核心提示:Imports System.Runtime.InteropServices.MarshalThen, replace the default Page_Load event with the code in Figure 1.Private Sub Page_Load(ByVal sender As System.O

Imports System.Runtime.InteropServices.Marshal

Then, replace the default Page_Load event with the code in Figure 1.

Private Sub Page_Load(ByVal sender As System.Object, _

 ByVal e As System.EventArgs) Handles MyBase.Load

  Dim oExcel As New Excel.Application()

  Dim oBooks As Excel.Workbooks, oBook As Excel.Workbook

  Dim oSheets As Excel.Sheets, oSheet As Excel.Worksheet

  Dim oCells As Excel.Range

  Dim sFile As String, sTemplate As String

  Dim dt As DataTable = _

  CType(Application.Item("MyDataTable"), DataTable)

 

  sFile = Server.MapPath(Request.ApplicationPath) & _

   "\MyExcel.xls"

 

  sTemplate = Server.MapPath(Request.ApplicationPath) & _

    "\MyTemplate.xls"

 

  oExcel.Visible = False : oExcel.DisplayAlerts = False

 

  'Start a new workbook

  oBooks = oExcel.Workbooks

  oBooks.Open(Server.MapPath(Request.ApplicationPath) & _

  "\MyTemplate.xls") 'Load colorful template with chart

  oBook = oBooks.Item(1)

  oSheets = oBook.Worksheets

  oSheet = CType(oSheets.Item(1), Excel.Worksheet)

  oSheet.Name = "First Sheet"

  oCells = oSheet.Cells

 

  DumpData(dt, oCells) 'Fill in the data

 

  oSheet.SaveAs(sFile) 'Save in a temporary file

  oBook.Close()

 

  'Quit Excel and thoroughly deallocate everything

  oExcel.Quit()

  ReleaseComObject(oCells) : ReleaseComObject(oSheet)

  ReleaseComObject(oSheets) : ReleaseComObject(oBook)

  ReleaseComObject(oBooks) : ReleaseComObject(oExcel)

  oExcel = Nothing : oBooks = Nothing : oBook = Nothing

  oSheets = Nothing : oSheet = Nothing : oCells = Nothing

  System.GC.Collect()

  Response.Redirect(sFile) 'Send the user to the file

End Sub

 

'Outputs a DataTable to an Excel Worksheet

Private Function DumpData(ByVal _

 dt As DataTable, ByVal oCells As Excel.Range) As String

  Dim dr As DataRow, ary() As Object

  Dim iRow As Integer, iCol As Integer

 

  'Output Column Headers

  For iCol = 0 To dt.Columns.Count - 1

    oCells(2, iCol + 1) = dt.Columns(iCol).ToString

  Next

 

  'Output Data

1 2  下一页

Tags:asp net 使用

编辑录入:coldstar [复制链接] [打 印]
赞助商链接