CSV文件,在EXCEL里可以直接生成與讀取。
成都創(chuàng)新互聯(lián)公司基于分布式IDC數(shù)據(jù)中心構(gòu)建的平臺(tái)為眾多戶提供四川聯(lián)通機(jī)房服務(wù)器托管 四川大帶寬租用 成都機(jī)柜租用 成都服務(wù)器租用。
可以通過(guò)VB.net去操作,打開EXCEL文件,去完成上述操作,而更為簡(jiǎn)單的辦法是直接當(dāng)做操作文本文件(TXT文件)就可以,因?yàn)橛糜浭卤拒浖?,打開CSV文可以發(fā)現(xiàn),其實(shí)際上是一個(gè)行內(nèi)數(shù)據(jù)之間用逗號(hào)分隔的格式文件。
下面給出例子:
在窗體上添加兩個(gè)多行文本框,兩個(gè)按鈕,兩個(gè)文本框一個(gè)用來(lái)輸入生成CSV文件的數(shù)據(jù),另一個(gè)用來(lái)讀取顯示CSV文件的數(shù)據(jù);兩個(gè)按鈕,一個(gè)完成生成CSV文件的代碼,另一個(gè)完成讀取CSV文件的代碼;具體代碼如下:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'創(chuàng)建(寫入)一個(gè)文本文件
Dim MyStream As New System.IO.FileStream(Application.StartupPath "\Ssk.CSV", System.IO.FileMode.Create)
Dim MyWriter As New System.IO.StreamWriter(MyStream, System.Text.Encoding.Default)
MyWriter.WriteLine(TextBox1.Text)
MyWriter.Flush()
MyWriter.Close()
MyStream.Close()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'讀取一個(gè)文本文件
Dim MyReader As New System.IO.StreamReader(Application.StartupPath "\Ssk.CSV", System.Text.Encoding.UTF8)
TextBox2.Text = MyReader.ReadToEnd()
MyReader.Close()
End Sub
注意:在輸入文本框里,同一行數(shù)據(jù)的數(shù)據(jù)之間用逗號(hào)(西文逗號(hào))分隔。
CSV只不過(guò)是用CRLF分行,逗號(hào)分列的一個(gè)簡(jiǎn)單文本
先做好行模板,如
Private RowTemp as string ="{0},{1},{2},....{n}"
寫入文件時(shí)候分行寫入
System.IO.StreamWriter.WriteLine(String.format(RowTemp,"數(shù)據(jù)1”,“數(shù)據(jù)2"...."數(shù)據(jù)n"))
用一個(gè)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表示讀取結(jié)束了
'讀取
Dim?lineread?As?String?=?""?'等下要讀的行
Dim?linewrite?As?String?=?""?'等下要寫入的行
Dim?data?As?String()?'每個(gè)數(shù)據(jù)的數(shù)組
lineread?=?sr1.ReadLine?'讀一行并把流的位置往后調(diào)一行
'你現(xiàn)在可以用If判斷這一行要不要?jiǎng)h除。如果要的話,用Else直接跳過(guò)下面的語(yǔ)句即可。
data?=?lineread.Split(",".ToCharArray,?StringSplitOptions.RemoveEmptyEntries)?'讀取一行,用逗號(hào)分隔后存在數(shù)組里
'下面對(duì)讀取到的數(shù)據(jù)進(jìn)行處理,你可以自己處理它
For?Each?item?As?String?In?data
linewrite?=?item??","?'csv是以逗號(hào)分隔的,我們寫進(jìn)去時(shí)也要記得加逗號(hào)
Next
'寫入
If?linewrite.EndsWith(",")?Then?'去掉行最后一個(gè)逗號(hào)。
'如果之前讀到一個(gè)空行,這里就不會(huì)執(zhí)行。你想想為什么
sr2.WriteLine(linewrite.Remove(linewrite.Length?-?1,?1))
End?If
'如果你之前用If判斷了行要不要?jiǎng)h除,那么End?If就應(yīng)該加在這里。
End?While
sr1.Close()
End?Using
sr2.Flush()
sr2.Close()
End?Using
Public Function GetTxtFile(ByVal TxtFn As String) As String()
Dim sr As IO.StreamReader
Dim tmpstr As String
Dim R() As String
Dim Rn As Long
sr = IO.File.OpenText(TxtFn)
tmpstr = sr.ReadLine()
Rn = 0
While Not tmpstr Is Nothing
ReDim Preserve R(Rn)
R(Rn) = tmpstr
tmpstr = sr.ReadLine()
Rn += 1
End While
sr.Close()
Return R
End Function
這是讀取一個(gè)的,然后你取出多個(gè)文件循環(huán)調(diào)用就可以了
本文標(biāo)題:vb.net篩選csv 基于vb的數(shù)據(jù)篩選
當(dāng)前鏈接:http://chinadenli.net/article6/dodieig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、軟件開發(fā)、網(wǎng)站維護(hù)、商城網(wǎng)站、建站公司、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)