大家作为开发领域中的一员,应该不会不知道VB.NET这一微软.NET系列的编程语言。它的出现为开发人员带来了方便的编程环境。下面我们将会为大家详细介绍有关VB.NET操作CSV文件的一些操作技巧。#t#
从DataTable导入到CSV
- Private Function ExportCsvProcess
(ByVal FilePath As String ByVal,
dt As DataTable) As Boolean - Dim fileStream As System.IO.FileStream
- Dim streamWriter As System.IO.StreamWriter
- Dim intRow, intCol As Integer
- Dim strRow As String
- '刪除舊CSV文件
- If (System.IO.File.Exists(FilePath)) Then
- System.IO.File.Delete(FilePath)
- End If
- Try
- fileStream = New FileStream(FilePath,
System.IO.FileMode.CreateNew, System.IO.
FileAccess.Write) - If Not dt Is Nothing Then
- streamWriter = New StreamWriter
(fileStream, System.Text.Encoding.Default) - strRow = ""
- '讀列名
- For intCol = 0 To dt.Columns.Count - 1
- strRow += dt.Columns(intCol).ColumnName
- If intCol < dt.Columns.Count - 1 Then
- strRow += ","
- End If
- Next
- streamWriter.WriteLine(strRow)
- '讀每行的值
- For intRow = 0 To dt.Rows.Count - 1
- strRow = ""
- For intCol = 0 To dt.Columns.Count - 1
- strRow += CStr(dt.Rows(intRow).Item(intCol))
- If intCol < dt.Columns.Count - 1 Then
- strRow += ","
- End If
- Next
- streamWriter.WriteLine(strRow)
- Next
- streamWriter.Close()
- End If
- Catch ex As Exception
- MessageShow(ex.ToString())
- Return False
- Finally
- fileStream.Close()
- End Try
- Return True
- End Function
必要时可以进行特殊字符的过滤
VB.NET操作CSV文件中特殊字符的过滤
- Private Function DelSpacChr
(ByVal str As String) As String- Dim i As Integer
- Dim result As String = str
- Dim strSpac() As String =
{"~", "!", "@", "#", "$", "%",
"^", "&", "*", "(", ")", "`", ";",
"'", ",", ".", "/", ":", "/,",
"<", ">", "?"}- For i = 0 To i < strSpac.Length
- If result.IndexOf(strSpac(i)) > -1 Then
- resultresult = result.Replace
(strSpac(i), "")- End If
- Next
- Return result
- End Function
下面是从CSV导入到DataTable,当然还可以像上面一样使用文件流操作,但这里采用OLEDB类实现VB.NET操作CSV文件。
- Public Function CSVToDataTable(ByVal
FilePath As String) As DataTable- Try
- If (System.IO.File.Exists(FilePath)) Then
- Dim fi As New System.IO.FileInfo(FilePath)
- 'HDR=NO 第一行當數據處理
- 'HDR=YES(默認)第一行當列處理
- Dim sConnectionString As String =
"Provider=Microsoft.Jet.OLEDB.4.0;
Extended Properties='Text;HDR=NO';Data
Source=" & fi.DirectoryName- Dim objConn As New System.Data.OleDb.
OleDbConnection(sConnectionString)
objConn.Open()- Dim strColum As String
- Dim objCmdSelect As New Data.OleDb.
OleDbCommand("SELECT Distinct * FROM "
& fi.Name, objConn)- Dim objAdapter As New Data.OleDb.
OleDbDataAdapter- Dim dt As New DataTable objAdapter.
SelectCommand = objCmdSelect
objAdapter.Fill(dt) objConn.Close()- Return dt
- End
- If Catch ex As Exception
- MessageShow(ex.ToString())
- Return Nothing
- End Try
- End Function
OK,VB.NET操作CSV文件完畢。