本例子在窗體上添加一個(gè)按鈕,一個(gè)空的DataGridView控件;
十年專注建站、設(shè)計(jì)、互聯(lián)網(wǎng)產(chǎn)品定制制作服務(wù),業(yè)務(wù)涵蓋成都品牌網(wǎng)站建設(shè)、商城開發(fā)、成都微信小程序、軟件系統(tǒng)開發(fā)、成都app軟件開發(fā)公司等。憑借多年豐富的經(jīng)驗(yàn),我們會(huì)仔細(xì)了解每個(gè)客戶的需求而做出多方面的分析、設(shè)計(jì)、整合,為客戶設(shè)計(jì)出具風(fēng)格及創(chuàng)意性的商業(yè)解決方案,創(chuàng)新互聯(lián)公司更提供一系列網(wǎng)站制作和網(wǎng)站推廣的服務(wù),以推動(dòng)各中小企業(yè)全面信息數(shù)字化,并利用創(chuàng)新技術(shù)幫助各行業(yè)提升企業(yè)形象和運(yùn)營(yíng)效率。
在按鈕的單擊事件里編寫代碼如下:
'讀取CSV文件到DataGridView控件
Dim?r?As?New?StreamReader("C:\工作簿1.csv",?System.Text.Encoding.Default)?'用StreamReader打開文件
Dim?MyRows(0)?As?String
Dim?d()?As?String
Dim?i?As?Integer?=?-1
Dim?j?As?Integer?=?0
Do?While?r.Peek??-1?'是否到文件尾
i?=?i?+?1
ReDim?Preserve?MyRows(i)
MyRows(i)?=?r.ReadLine??????'從打開的文件中讀取一行內(nèi)容
Loop
r.Close()??????'關(guān)閉對(duì)象
'獲得數(shù)據(jù)的列數(shù)
d?=?Split(MyRows(1),?",")
'首先在DataGridView控件中添加列
DataGridView1.ColumnCount?=?UBound(d)?+?1
'然后在DataGridView控件中添加行
DataGridView1.Rows.Add(UBound(MyRows))
'在DataGridView控件中添加數(shù)據(jù)
For?i?=?0?To?UBound(MyRows)
d?=?Split(MyRows(i),?",")
For?j?=?0?To?UBound(d)
DataGridView1.Item(j,?i).Value?=?d(j)
Next
Next
你都用.net了,這是vb的舊語(yǔ)法,不推薦使用。vb.net是面向?qū)ο蟮模扑]您使用
dim OpF as new io.filestream(OpenFileDialog1.FileName, IO.FileMode.Open)
...
OpF.close
或是
Using OpF as new io.filestream(OpenFileDialog1.FileName, IO.FileMode.Open)
...
End Using
但是你如果執(zhí)意要用的話,也可以:
FileOpen(1, OpenFileDialog1.FileName, OpenMode.Input)
...
FileClose(1) '這里可以同時(shí)關(guān)閉多個(gè)文件號(hào),文件號(hào)之間用,隔開
CSV文件,在EXCEL里可以直接生成與讀取。
可以通過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è)用來輸入生成CSV文件的數(shù)據(jù),另一個(gè)用來讀取顯示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))分隔。
用一個(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直接跳過下面的語(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
網(wǎng)站題目:vb.net關(guān)閉csv,vb關(guān)閉窗口
本文URL:http://m.kartarina.com/article8/hscoip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、域名注冊(cè)、小程序開發(fā)、電子商務(wù)、外貿(mào)建站、Google
聲明:本網(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í)需注明來源: 創(chuàng)新互聯(lián)