CSV文件中的VB.net总和

伊万·亚历山德罗夫(Ivan Alexandrov)

我有包含一些值的CSV文件。看起来像这样:

1;11,19;91,69
1;2,8  ;26,54
2;0    ;2,79
2;7,8  ;0
3;0    ;35,44
1;0    ;8,89
2;27,33;16,5
3;0    ;35,49
2;0    ;42,69
2;0    ;93,09

我需要将新的字符串写入新的CSV,其中包含第1列和第2列的总和,并按第0列进行排序。它必须看起来像这样:

1;13,99;127,12
2;35,13;155,07
3;0    ;70,93

开始时,我尝试计算列的总和,但即使在那儿,我仍然遇到问题,无法弄清楚该怎么做。现在,我已经按照列0的值进行排序了。现在我的代码看起来像这样。

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        Dim file As String() = IO.File.ReadAllLines("path\input.csv")
        Dim sum As Decimal
        sum = 0
        Dim sb As New List(Of String)
        For Each line In file
            Dim col = line.Split(";"c)
            Dim result As Decimal = sum + col(1)
            Dim result1 As Decimal = sum + col(2)
            sb.Add(String.Join(";", col(0) & ";" & result & ";" & result1))
        Next
        IO.File.WriteAllLines("path\output.csv", sb.ToArray())
    End Sub

我用Python的答案看到了相同的问题,但是我不知道如何将代码转换为VB.Net。编辑:不得不说,第0列中的数字仅是示例,并且有50多个唯一值。

空博士

为了澄清,实际上您不需要条目进行排序,您应该将它们按第一列分组,然后将每个组的第二和第三列相加。

这是另一个解决方案:

Imports System.IO
Imports System.Linq
Imports System.Globalization

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
    Dim inputFile = "path/input.csv"
    Dim outputFile = "path/output.csv"
    Dim ci = New CultureInfo("de-DE")

    File.WriteAllLines(outputFile, File.ReadLines(inputFile).
                        Select(Function(x) x.Split(";"c)).
                        GroupBy(Function(x) Integer.Parse(x(0))).
                        Select(Function(x)
                                    Return String.Format(
                                    "{0};{1};{2}",
                                    x.Key,
                                    x.Sum(Function(y) Decimal.Parse(y(1), ci)),
                                    x.Sum(Function(y) Decimal.Parse(y(2), ci)))
                                End Function).ToArray)
End Sub

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Datagridview总和列错误/ vb.net

来自分类Dev

使用vb.net中的特定列和行将csv文件导入到datagridview中

来自分类Dev

在VB.NET中读取CSV文件时如何忽略换行符?

来自分类Dev

python中CSV文件的列总和

来自分类Dev

在VB.NET中使用Crystal Report的2列的总和

来自分类Dev

获取列和在vb.net中的文本框中输入的值的总和

来自分类Dev

在VB.Net中获取ListView的特定列中所有值的总和

来自分类Dev

在VB.Net中获取ListView的特定列中所有值的总和

来自分类Dev

OLEDB总和错误:条件表达式中的数据类型不匹配。VB.NET

来自分类Dev

CodeGo.net>如何从列表中获取值的总和?

来自分类Dev

CodeGo.net>如何从列表中获取值的总和?

来自分类Dev

VB.Net中的文件比较

来自分类Dev

在vb.net中控制pal文件

来自分类Dev

VB .NET 中的动态文件下载按钮

来自分类Dev

如何在CSV文件python中获取总和

来自分类Dev

基于三列值的csv文件中的awk总和行

来自分类Dev

从带有标题的 CSV 文件中查找行的总和

来自分类常见问题

.csv文件的Java薪金总和

来自分类Dev

文件中各行的总和

来自分类Dev

vb.net中的CSV的odbc阅读器

来自分类Dev

如何在VB.NET中将函数定义为ParraArray中所有函数的总和

来自分类Dev

我如何总计数据表vb.net的总和列和行

来自分类Dev

CSV列中的总和值

来自分类Dev

VB.Net:如何上传<input type =“ file” ...>中的文件

来自分类Dev

从VB.NET文件中仅读取x个字节

来自分类Dev

在VB.NET中单击按钮时打开txt文件

来自分类Dev

在.txt文件VB.net中搜索数组

来自分类Dev

在VB.NET中单击按钮时打开txt文件

来自分类Dev

从VB.NET中的文本文件读取行