扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
用一个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
这里没有引用EXCEL对象,应该是先引用EXCEL对象,然后用EXCEL打开txt文件(这里可设EXCEL对象为可见或不可见,是一个中间过程,可见也没有多大意义,转换时间短可能也不去关心,转换后你也不保存EXCEL文件),另存为CSV格式后退出。
CSV文件,在EXCEL里可以直接生成与读取。
可以通过VB.net去操作,打开EXCEL文件,去完成上述操作,而更为简单的办法是直接当做操作文本文件(TXT文件)就可以,因为用记事本软件,打开CSV文可以发现,其实际上是一个行内数据之间用逗号分隔的格式文件。
下面给出例子:
在窗体上添加两个多行文本框,两个按钮,两个文本框一个用来输入生成CSV文件的数据,另一个用来读取显示CSV文件的数据;两个按钮,一个完成生成CSV文件的代码,另一个完成读取CSV文件的代码;具体代码如下:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'创建(写入)一个文本文件
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
'读取一个文本文件
Dim MyReader As New System.IO.StreamReader(Application.StartupPath "\Ssk.CSV", System.Text.Encoding.UTF8)
TextBox2.Text = MyReader.ReadToEnd()
MyReader.Close()
End Sub
注意:在输入文本框里,同一行数据的数据之间用逗号(西文逗号)分隔。
用VBS就可以了,没必要用VB(当然,复制以下代码在VB中也能用,你也能看得出来,这本就是VB代码,只是用VBS的话不用生成EXE软件)
打开记事本,输入:
strfolder="G:\Users\maker\Desktop\新建文件夹 (2)\1"
Set objSFO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objSFO.GetFolder(strfolder)
Set colfiles=objfolder.Files
For Each strfile In colfiles
strnewname=".jpg"
objsfo.MoveFile strfile,strfolder "\" mid(strfile.ShortName,1,len(strfile.ShortName)-4) strnewname
Next
然后稍微修改一下就可以另存为**.vbs放到文件夹里双击打开就可以了。第一行改成你要修改的文件夹路径,第6行改成你要修改成的.CSV格式,以上是我自己用来改文件名的程序,很好用。
如果你要改成CSV的格式的文件,那么你用VB的话必须引用EXCEL控件,然后循环打开文件,再用另存为,有点复杂,他们一般不会给你代码的,如果要实现,最好用VB.NET中的VSTO或者直接在EXCEL中用VBE编辑(推荐,这个很快也很方便,更最简单。),如果用VBE,那么上面的程序中的遍历文件夹文件那部分代码是可以用得上的,如果你不懂代码(看这样子,你至少懂VB),只是需要这样的功能,在这里找有难度,除非刚好有人编过此功能。
附:其实CSV也不过就是把EXCEL文件中的数据读成一般TXT文档的格式了,只是把表格分成了分隔符,也就是如果你不想另存为的话,读取EXCEL文件,然后直接建个文件,写入顺序文件就可以了。
VBE保存部分代码:
Dim exapp As Application
exapp.Workbooks(1).SaveAs "文件名", "格式"
祝你好运!~
'将 工程-部件-控件-Microsoft Common Dialog Control 6.0(SP3)选中
Private Sub Command1_Click()
Dim R As String, L As String
CommonDialog1.InitDir = App.Path
CommonDialog1.Filter = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*"
CommonDialog1.ShowOpen '显示打开文件对话框
R = CommonDialog1.FileName
CommonDialog1.InitDir = App.Path
CommonDialog1.Filter = "文本文件(*.CSV)|*.CSV|所有文件(*.*)|*.*"
If UCase(Right(R, 4)) = ".TXT" Then
L = Left(R, Len(R) - 4) ".CSV"
Else
L = R ".CSV"
End If
CommonDialog1.FileName = L
CommonDialog1.ShowSave '显示打开文件对话框
L = CommonDialog1.FileName
Print R "保存为" L
If UCase(Right(L, 4)) = ".TXT" Then
L = Left(L, Len(L) - 4) ".CSV"
Else
L = L ' ".CSV"
End If
FileCopy R, L
End Sub
CSV只不过是用CRLF分行,
逗号
分列的一个
简单文本
先做好行
模板
,如
Private
RowTemp
as
string
="{0},{1},{2},....{n}"
写入文件时候分行写入
System.IO.StreamWriter.
WriteLine
(String.format(RowTemp,"数据1”,“数据2"...."数据n"))
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流