您的位置:首页 > 编程语言

一个绝对很好的将DataTable中的数据导出到Excel文件中的类源代码

2005-04-30 15:14 806 查看
下面就是这个类的源码了,怎样使用相信不用我多说了...............Imports System.IO
Public Class ExportManager
Private m_path As String
Private m_sType As String
Private m_template As String
Private m_rptTitle As String
Private m_sErrMsg As String
Private m_rptdate As String

Public Property ErrorMessage()
Get
ErrorMessage = m_sErrMsg
End Get
Set(ByVal Value)
m_sErrMsg = Value
End Set
End Property
Public Property Path()
Get
Path = m_path
End Get
Set(ByVal Value)
m_path = Value
End Set
End Property
Public Property templatePath() As String
Get
templatePath = m_template
End Get
Set(ByVal Value As String)
m_template = Value
End Set
End Property
Public Property DataType()
Get
DataType = m_sType
End Get
Set(ByVal Value)
m_sType = Value
End Set
End Property
Public Property ReportTitle()
Get
ReportTitle = m_rptTitle
End Get
Set(ByVal Value)
m_rptTitle = Value
End Set
End Property
Public Property ReportDate()
Get
ReportDate = m_rptdate
End Get
Set(ByVal Value)
m_rptdate = Value
End Set
End Property
Public Sub New(ByVal RelativePath As String)
Path = RelativePath
End Sub
Public Sub New(ByVal RelativePath As String, ByVal DType As String)
Path = RelativePath
DataType = DType
End Sub
Private Function ReadStyle(ByVal Path As String)
Dim sReader As StreamReader
Dim sStyle As String
On Error Resume Next
sReader = New StreamReader(Path)
sStyle = sReader.ReadToEnd
sReader.Close()
sReader = Nothing
ReadStyle = sStyle
End Function
Public Function WriteToExcel(ByVal ctrl As Control(), Optional ByVal RemoveCtrl As Control() = Nothing, Optional ByVal StyleSheet As String() = Nothing) As Boolean
Dim objStreamWriter As StreamWriter
Dim objStringWriter As New System.IO.StringWriter()
Dim objHtmlTextWriter As New System.Web.UI.HtmlTextWriter(objStringWriter)
Dim dgItem As DataGridItem
Dim rowCnt As Integer
Dim newLine As String
Dim RemoveList As ArrayList
Dim CtrlItem As Control
Dim s As String
Try
objStreamWriter = File.CreateText(Path)
objStreamWriter.Write("<html><head>")
If Not StyleSheet Is Nothing Then
objStreamWriter.Write("<style>")
For Each s In StyleSheet
objStreamWriter.Write(ReadStyle(s))
Next
objStreamWriter.Write("</style>")
End If
objStreamWriter.Write("</head><body>")
If ReportTitle <> "" Then objStreamWriter.Write("<B>" & ReportTitle & "</B><BR>")
If ReportDate <> "" Then objStreamWriter.Write("<B>" & ReportDate & "</B><BR>")

If Not RemoveCtrl Is Nothing Then
RemoveList = New ArrayList(RemoveCtrl)
End If
For Each CtrlItem In ctrl
ClearControls(CtrlItem, RemoveList)
CtrlItem.RenderControl(objHtmlTextWriter)
Next
objStreamWriter.WriteLine(objStringWriter)
objStreamWriter.Write("</body></html>")
objStreamWriter.Close()
objStreamWriter = Nothing
WriteToExcel = True
Catch e As Exception
ErrorMessage = e.Message
WriteToExcel = False
End Try
End Function
End Class
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: