如何仅在第一行生成.csv标头?

时间:2016-10-27 04:26:13

标签: vb.net csv export-to-csv

如何使用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(文件,文本,真),它附加它

我该如何解决这个问题?

2 个答案:

答案 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中打开,没有任何问题:

enter image description here


因此,问题必须在您的代码中的其他位置。为了方便我们为您提供帮助,请提供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