在.NET将dataset输出为.CSV文件的方法...
2008-04-10 14:47
381 查看
在.NET将dataset输出为.CSV文件的方法...
注意移除','和'回车符'
Imports System.Configuration
Imports System.Data
Imports System.Data.OleDb
Imports Logonexperss.CustomerOnline.DBHelper
Imports System.IO
Public Class excle
Inherits System.Web.UI.Page
#Region " Web Form Designer Generated Code "
'This call is required by the Web Form Designer.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub
Protected WithEvents DataGrid1 As System.Web.UI.WebControls.DataGrid
'NOTE: The following placeholder declaration is required by the Web Form Designer.
'Do not delete or move it.
Private designerPlaceholderDeclaration As System.Object
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
bind()
End Sub
Private Sub bind()
Dim ds As DataSet
DBHelper.ConnectString = ConfigurationSettings.AppSettings.Item("Database.ConnectionString")
ds = DBHelper.RunSelect("select * from TrialSent")
Dim dt As DataTable = ds.Tables(0)
DataTableToExcel(dt)
'DataGrid1.DataSource = ds
'DataGrid1.DataBind()
End Sub
Public Sub DataTableToExcel(ByVal dt As DataTable)
Try
If dt Is Nothing OrElse dt.Rows.Count < 1 Then
Return
End If
'分隔符
Dim strSplitChar As String = String.Empty
strSplitChar = ","
Dim sw As New System.IO.StringWriter
Dim strTemp As String = String.Empty
Dim num As Integer = dt.Columns.Count - 1
For i As Integer = 0 To num
'输出头
If i <> dt.Columns.Count - 1 Then
strTemp += dt.Columns(i).ColumnName + strSplitChar
Else
strTemp += dt.Columns(i).ColumnName
End If
Next
sw.WriteLine(strTemp)
strTemp = ""
For i As Integer = 0 To dt.Rows.Count - 1
'输出内容 ,注意移除','和'回车符'
For j As Integer = 0 To num
If j <> dt.Columns.Count - 1 Then
strTemp += dt.Rows(i)(j).ToString().Replace(",", "").Replace(Chr(13) & Chr(10), "") + strSplitChar
Else
strTemp += dt.Rows(i)(j).ToString()
End If
Next
sw.WriteLine(strTemp)
strTemp = ""
Next
sw.Close()
Response.AddHeader("Content-Disposition", "attachment; filename=test.csv")
Response.ContentType = "application/ms-excel"
Response.Write(sw)
Response.End()
Catch ex As Exception
Throw ex
End Try
End Sub
End Class
注意移除','和'回车符'
Imports System.Configuration
Imports System.Data
Imports System.Data.OleDb
Imports Logonexperss.CustomerOnline.DBHelper
Imports System.IO
Public Class excle
Inherits System.Web.UI.Page
#Region " Web Form Designer Generated Code "
'This call is required by the Web Form Designer.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub
Protected WithEvents DataGrid1 As System.Web.UI.WebControls.DataGrid
'NOTE: The following placeholder declaration is required by the Web Form Designer.
'Do not delete or move it.
Private designerPlaceholderDeclaration As System.Object
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
bind()
End Sub
Private Sub bind()
Dim ds As DataSet
DBHelper.ConnectString = ConfigurationSettings.AppSettings.Item("Database.ConnectionString")
ds = DBHelper.RunSelect("select * from TrialSent")
Dim dt As DataTable = ds.Tables(0)
DataTableToExcel(dt)
'DataGrid1.DataSource = ds
'DataGrid1.DataBind()
End Sub
Public Sub DataTableToExcel(ByVal dt As DataTable)
Try
If dt Is Nothing OrElse dt.Rows.Count < 1 Then
Return
End If
'分隔符
Dim strSplitChar As String = String.Empty
strSplitChar = ","
Dim sw As New System.IO.StringWriter
Dim strTemp As String = String.Empty
Dim num As Integer = dt.Columns.Count - 1
For i As Integer = 0 To num
'输出头
If i <> dt.Columns.Count - 1 Then
strTemp += dt.Columns(i).ColumnName + strSplitChar
Else
strTemp += dt.Columns(i).ColumnName
End If
Next
sw.WriteLine(strTemp)
strTemp = ""
For i As Integer = 0 To dt.Rows.Count - 1
'输出内容 ,注意移除','和'回车符'
For j As Integer = 0 To num
If j <> dt.Columns.Count - 1 Then
strTemp += dt.Rows(i)(j).ToString().Replace(",", "").Replace(Chr(13) & Chr(10), "") + strSplitChar
Else
strTemp += dt.Rows(i)(j).ToString()
End If
Next
sw.WriteLine(strTemp)
strTemp = ""
Next
sw.Close()
Response.AddHeader("Content-Disposition", "attachment; filename=test.csv")
Response.ContentType = "application/ms-excel"
Response.Write(sw)
Response.End()
Catch ex As Exception
Throw ex
End Try
End Sub
End Class
相关文章推荐
- 使用PHP输出CSV和EXCEL文件的简单方法
- php从csv文件读取数据并输出到网页的方法
- .net 执行多条cmd 命令方法与大批量CSV文件合并成一个文件方法
- .NET 重定向 标准输出到文件的方法
- php读取csv文件并输出的方法
- thinkPHP导出csv文件及用表格输出excel的方法
- thinkPHP导出csv文件及用表格输出excel的方法
- php读取csv文件并输出的方法
- iis发布.net网站 编译器错误信息: CS0016: 未能写入输出文件 解决方法
- go语言读取csv文件并输出的方法
- 测试sq3数据库,读取数据库把内容输出到csv文件,附上输出到excel方法
- .net 编译器错误信息: CS0016: 未能写入输出文件 解决方法
- PHP 简易输出CSV表格文件的方法详解
- 读取Csv文件返回DataSet的 二 种方法
- .Net输出word和excel文件方法和函数!
- php将数组转换成csv格式文件输出的方法
- VB.NET DATAGRID或DATASET 输出CSV文件
- php从csv文件读取数据并输出到网页的方法
- php将数组转换成csv格式文件输出的方法
- PHP 简易输出CSV表格文件的方法详解