一个绝对很好的将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
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
相关文章推荐
- Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- DataTable数据导出成Excel文件的小例子
- 在网看到了一个Silverlight导出DataGrid里的数据到Excel或xml文件里
- DataTable中数据导出成Excel文件
- Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- 一个将数据文件转换成excel文件打印的java实现方法的代码片断(Struts+poi)
- 导出数据到一个Excel文件中去
- 在网看到了一个Silverlight导出DataGrid里的数据到Excel或xml文件里
- DataTable中的数据导出Excel文件
- Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- 【代码实现】PHP导入Excel和导出数据为Excel文件
- Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- 很好用的数据库数据字典【可导出为word , excel文件】
- c# .Net :Excel NPOI导入导出操作教程之数据库表信息数据导出到一个Excel文件并写到磁盘示例分享
- Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- DataSet数据导出为Excel文档(每个DataTable为一个Sheet)
- 一些关于从数据库导出数据到word、excel、.txt文本文件的代码