如何使用VB.NET代码仅在第一行生成.csv标头?下面是我尝试过的代码,但是它写在.csv文件的顶部和列上。
Try
My.Computer.FileSystem.WriteAllText("C:\bin\Debug\TimerTest.csv",
"Date and Time,Tag Name, Value" & vbCrLf &
timeUtc & "," & Tag_name_Read & "," & itemValues(0).Value.ToString, True)
'Date and Time, Tag Name, Value are my header. they are suppose to be on the first line
Catch ex As Exception
End Try
If daServerMgt.IsConnected Then
daServerMgt.Disconnect()
End If
Update Link Showing the csv file)
我只想把标题(日期和时间|标记名称|值)放在顶部,我不希望它在列上。由于My.Computer.FileSystem.WriteAllText(文件,文本,真),它附加它
我该如何解决这个问题?
答案 0 :(得分:0)
除了提到的@Enigmativity之类的问题之外,您的代码似乎没有任何问题。
我的旧机器最近崩溃了,我的全新机器上还没有安装Visual Studio,但我在名为C:\Temp
的{{1}}文件夹中创建了一个文件,其中包含以下内容:
TimerTest.vb
然后我通过在命令窗口中运行以下语句来编译(Imports System
Module Module1
Public Structure Struct1
Public Value As Integer
Sub New(ByVal _Value As Integer)
Value = _Value
End Sub
End Structure
Sub Main()
Dim timeUtc As DateTime = DateTime.Now()
Dim Tag_name_Read As String = "FortyTwo"
Dim itemValues = New Struct1() { New Struct1(42), New Struct1(43), New Struct1(44)}
Try
'My.Computer.FileSystem.WriteAllText("C:\bin\Debug\TimerTest.csv",
My.Computer.FileSystem.WriteAllText("C:\Temp\TimerTest.csv",
"Date and Time,Tag Name, Value" & vbCrLf &
timeUtc & "," & Tag_name_Read & "," & itemValues(0).Value.ToString, True)
'Date and Time, Tag Name, Value are my header. they are suppose to be on the first line
Catch ex As Exception
End Try
'If daServerMgt.IsConnected Then
' daServerMgt.Disconnect()
'End If
End Sub
End Module
的父文件夹已经在我的vbc.exe
中):
%PATH%
运行生成的vbc C:\Temp\TimerTest.vb
文件后,在TimerTest.exe
中生成了TimerTest.csv
文件,其中包含以下内容:
C:\Temp
当我双击Date and Time,Tag Name, Value<br>
10/27/2016 9:07:31 PM,FortyTwo,42
文件时,它会在Excel中打开,没有任何问题:
因此,问题必须在您的代码中的其他位置。为了方便我们为您提供帮助,请提供Minimal, Complete, and Verifiable example来解决问题。
答案 1 :(得分:0)
我只是通过将标题的文本添加到Run_Click
子集中来找到解决方案。每次运行事件时,它都会将文本附加到现有文件中并将其放在第一行(标题行)上。它有效!
以下是我使用的代码:
Private Sub Run_Click(sender As Object, e As EventArgs) Handles Run.Click
Dim Path As String = "C:\bin\Debug\TimerTest.csv"
My.Computer.FileSystem.WriteAllText(Path, "Date and Time, Tag Name, Value", False) 'add
Timer1.Enabled = True
End Sub