重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
CSV文件特征是每行一条记录,字段用逗号分开。你只需要逐行处理,将每行文本用逗号切分得到数组array,然后判断array[0]是否等于"bbb",如果相等则array[1]就是”4561234567890“;如果不等则继续处理下一行。
创新互联-专业网站定制、快速模板网站建设、高性价比峨眉山网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式峨眉山网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖峨眉山地区。费用合理售后完善,十年实体公司更值得信赖。
没怎么用过VB,下面给出C#代码:
string FindString(string filename, string title){ FileStream stream = null; try { stream = File.OpenRead(filename); StreamReader reader = new StreamReader(stream, Encoding.Default);
string result = null;//存储查找的结果 while (!reader.EndOfStream) { //读取一行 string strLine = reader.ReadLine(); string[] array = strLine.Split(','); if (array == null || array.Length 1)//该行无效 continue; if (string.Compare(array[0], title, false) == 0) {//找到了 return array[1]; } } } catch (Exception ex) { //出错了 return null; } finally { if (stream != null) stream.Close(); }
//到这里说明没找到 return null;}void Test(){ string result = FindString(@"C:\demo.csv", "bbb");}
代码如下:
Dim Str As String
If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
Str = OpenFileDialog1.FileName
End If
Dim oExcel As New Excel.Application
Dim oWorkBook As Excel.Workbook
Dim oWorkSheet As Excel.Worksheet
oWorkBook = oExcel.Workbooks.Open(Str)
oWorkSheet = oWorkBook.Worksheets(1)
For i = 1 To 50 这里我暂时读取了50行,因为我不知道如何判断读到最后一行
MsgBox(oWorkSheet.Cells(i, 1).value oWorkSheet.Cells(i, 2).value oWorkSheet.Cells(i, 3).value)
Next
oWorkBook.Close()
oWorkBook = Nothing
oExcel.Quit()
oExcel = Nothing
你csv文件是用什么分割符的?
把csv文件当做文本文件处理
File.ReadAllLines 读取所有行,
然后循环每行,按照分隔符split后就是每一列
用一个streamreader和streamwriter即可
Using sr2 As New StreamWriter("2.csv", False, Text.Encoding.Default) '要写入的文件
Using sr1 As New StreamReader("1.csv", Text.Encoding.Default) '要读取的文件
While Not sr1.EndOfStream 'EndOfStream=True表示读取结束了
'读取
Dim lineread As String = "" '等下要读的行
Dim linewrite As String = "" '等下要写入的行
Dim data As String() '每个数据的数组
lineread = sr1.ReadLine '读一行并把流的位置往后调一行
'你现在可以用If判断这一行要不要删除。如果要的话,用Else直接跳过下面的语句即可。
data = lineread.Split(",".ToCharArray, StringSplitOptions.RemoveEmptyEntries) '读取一行,用逗号分隔后存在数组里
'下面对读取到的数据进行处理,你可以自己处理它
For Each item As String In data
linewrite = item "," 'csv是以逗号分隔的,我们写进去时也要记得加逗号
Next
'写入
If linewrite.EndsWith(",") Then '去掉行最后一个逗号。
'如果之前读到一个空行,这里就不会执行。你想想为什么
sr2.WriteLine(linewrite.Remove(linewrite.Length - 1, 1))
End If
'如果你之前用If判断了行要不要删除,那么End If就应该加在这里。
End While
sr1.Close()
End Using
sr2.Flush()
sr2.Close()
End Using
给你一段VB.net读取csv文件的代码把。
Imports System.IO
Imports System.Collections.Generic
Module Module1
Public CSV数据 As List(Of List(Of String))
''' summary
''' 从指定路径的文件读取内容,并分析出其中每行含有分隔符的数据,存到CSV数据中。
''' para调用的时候使用CSV数据(5)(0)表示第6条记录的第1个数据/para
''' /summary
''' param name="文件路径"必需。一个[String]表达式。要读取的文件路径。/param
''' returns返回是否读取成功/returns
''' remarks/remarks
Public Function 读取(ByVal 文件路径 As String) As Boolean
Dim 文件读取器 As StreamReader = New StreamReader(文件路径)
Dim 语句 As String
Dim t成功 As Boolean = True
Dim 分隔符 As Char = ";"
CSV数据 = New List(Of List(Of String))
While Not 文件读取器.EndOfStream
Try
语句 = 文件读取器.ReadLine
'分析语句后判断类型
If 语句.Contains(分隔符) Then
Dim array = 语句.Split(分隔符)
If array IsNot Nothing Then
CSV数据.Add(array.ToList())
End If
End If
Catch ex As Exception
t成功 = False
End Try
End While
Return t成功
End Function
End Module
你上面的数据执行后,将会保存到一个List嵌套List的String组中。
自己转化为数字再进行操作把。
Dim 数字 = Convert.ToDecimal(CSV数据(5)(0))
你是怎么读写的呢?下面是简单的读写
Dim str As String = (My.Computer.FileSystem.ReadAllText("C:\QD51-R24_A.csv")) '读
My.Computer.FileSystem.WriteAllText("C:\1.csv", str, True) '写