vb.net 怎么生成csv文件与怎么读取csv文件

h924206238 2013-07-22 07:23:28
新手 刚接触vb.net 需要具体代码 求帮助啊
...全文
1529 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengwu666 2014-10-25
  • 打赏
  • 举报
回复
System.IO.File.WriteAllText() System.IO.File.ReadAllText() 用上面的读写就可以了,和txt文本一样操作。 只是csv用逗号隔开,以excel打开会发布在每个单元格内。
fullwolf 2014-09-23
  • 打赏
  • 举报
回复
csv和txt不一样吗。我一直以为一样的,把txt后缀改成csv,一样打开。用ue打开格式也是一样的。
  • 打赏
  • 举报
回复
把csv的文本语法规则弄清楚。
bruke_li 2014-09-22
  • 打赏
  • 举报
回复
hzybc 2013-09-06
  • 打赏
  • 举报
回复
CSV 文件 和 Txt 文件有区别吗?
lele_nancy 2013-09-02
  • 打赏
  • 举报
回复
随便写的,自己看看修改

Private Sub SaveCsv(ByVal dt As DataTable, ByVal csvPath As String, ByVal RecName As String)
        Dim enc As System.Text.Encoding = _
            System.Text.Encoding.GetEncoding("UTF-8") 
        Try
            If System.IO.File.Exists(csvPath) Then
                System.IO.File.Delete(csvPath)
            End If
        Catch ex As Exception
            MessageBox.Show(csvPath & vbCrLf & "was failed to delete.", "ParameterEdit", MessageBoxButtons.OK, MessageBoxIcon.Warning)
        End Try

        Dim filePath As String = CreatePath(csvPath, RecName)

        Dim sr As New System.IO.StreamWriter(filePath, False, enc)

        Dim fileName As String = filePath.Substring(filePath.LastIndexOf("\") + 1)
        Dim Dtype As String = DataAttribute.GetUnitName(DataAttribute.GetUnitID(RecName.Substring(0, RecName.IndexOf("\"))))
        Dim colCount As Integer = dt.Columns.Count
        Dim lastColIndex As Integer = colCount - 1
        sr.Write("'*******************************************************************************")
        sr.Write(ControlChars.Cr + ControlChars.Lf)
        sr.Write("' Machine Name : " & MACHIN_NAME)
        sr.Write(ControlChars.Cr + ControlChars.Lf)
        sr.Write("' Version      :  " & VERSION)
        sr.Write(ControlChars.Cr + ControlChars.Lf)
        sr.Write("' Data Type    : " & Dtype)
        sr.Write(ControlChars.Cr + ControlChars.Lf)
        sr.Write("' File Name    : " & fileName)
        sr.Write(ControlChars.Cr + ControlChars.Lf)
        sr.Write("' Save Date    : " & Now.ToString("yyyy/MM/dd HH:mm:ss"))
        sr.Write(ControlChars.Cr + ControlChars.Lf)
        sr.Write("'*******************************************************************************")
        sr.Write(ControlChars.Cr + ControlChars.Lf)

        Dim uid As Int32 = GetUnitID(RecName)

            Dim i As Integer
            For i = 0 To colCount - 1
                Dim field As String = dt.Columns(i).Caption
                If field.IndexOf(ControlChars.Quote) > -1 OrElse _
                    field.IndexOf(","c) > -1 OrElse _
                    field.IndexOf(ControlChars.Cr) > -1 OrElse _
                    field.IndexOf(ControlChars.Lf) > -1 OrElse _
                    field.StartsWith(" ") OrElse _
                    field.StartsWith(ControlChars.Tab) OrElse _
                    field.EndsWith(" ") OrElse _
                    field.EndsWith(ControlChars.Tab) Then
                    If field.IndexOf(ControlChars.Quote) > -1 Then
                        field = field.Replace("""", """""")
                    End If
                    field = """" + field + """"
                End If
                sr.Write(field)
                If lastColIndex > i Then
                    sr.Write(","c)
                End If
            Next i
        
        sr.Write(ControlChars.Cr + ControlChars.Lf)

        Dim row As DataRow
        For Each row In dt.Rows
            For i = 0 To colCount - 1
                'フィールドの取得
                Dim field As String = row(i).ToString()
                If field.IndexOf(ControlChars.Quote) > -1 OrElse _
                    field.IndexOf(","c) > -1 OrElse _
                    field.IndexOf(ControlChars.Cr) > -1 OrElse _
                    field.IndexOf(ControlChars.Lf) > -1 OrElse _
                    field.StartsWith(" ") OrElse _
                    field.StartsWith(ControlChars.Tab) OrElse _
                    field.EndsWith(" ") OrElse _
                    field.EndsWith(ControlChars.Tab) Then
                    If field.IndexOf(ControlChars.Quote) > -1 Then
                        field = field.Replace("""", """""")
                    End If
                    field = """" + field + """"
                End If
                sr.Write(field)
                If lastColIndex > i Then
                    sr.Write(","c)
                End If
            Next i
            sr.Write(ControlChars.Cr + ControlChars.Lf)
        Next row

        sr.Close()
    End Sub


 Private Sub GetDtCsv(ByVal path As String, ByVal uid As Int32, ByVal ds As DataSet, ByVal recName As String)

        Try
            Dim objFile As New System.IO.StreamReader(path)

            Dim strLine As String       
            Dim strTemp() As String    
            Dim RecItem As String
           
            Dim MstItem As String = ""
            Dim startLine As Int32 = 7
           
            For iL As Int32 = 1 To startLine
                strLine = objFile.ReadLine()
            Next
            strLine = objFile.ReadLine()

            strLine = objFile.ReadLine()
            Dim ColCnt As Int32 = startLine + 2

            While (strLine <> "")
                strTemp = Split(strLine, ",")
                RecItem = strTemp(0)
                If strTemp(strTemp.Length - 1) = "" Then
                    strLine = objFile.ReadLine()
                    ColCnt = ColCnt + 1
                    Continue While
                End If
               
                strLine = objFile.ReadLine()
                ColCnt = ColCnt + 1
            End While

            ds.AcceptChanges()
        Catch ex As Exception

        End Try


    End Sub

  • 打赏
  • 举报
回复
读入CSV: Dim OutputString As String =System.Text.Encoding.Default.GetString(My.computer.filesystem.ReadAllBytes("c:\test.csv",System.Text.Encoding.Default))
  • 打赏
  • 举报
回复
写入CSV:My.computer.filesystem.WriteAllBytes("c:\test.csv",System.Text.Encoding.Default.GetBytes("字符串"),false,System.Text.Encoding.Default) 读入CSV: Dim OutputString As String =My.computer.filesystem.ReadAllBytes("c:\test.csv",System.Text.Encoding.Default)
h924206238 2013-07-22
  • 打赏
  • 举报
回复
引用 1 楼 u011344309 的回复:
先查询文件是否存在,不存在就创建
根本就没接触过,上星期五刚用,怎么创建啊 有代码吗
  • 打赏
  • 举报
回复
http://www.baidu.com/s?wd=vb.net+csv&rsv_bp=0&ch=&tn=baidu&bar=&rsv_spt=3&ie=utf-8&rsv_n=2&rsv_sug3=1&rsv_sug1=1&rsv_sug4=44&inputT=687 自己动手,丰衣足食
lyh0528 2013-07-22
  • 打赏
  • 举报
回复
先查询文件是否存在,不存在就创建

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧