如何在控制台中打印CSV文件

本文关键字:打印 CSV 文件 控制台 | 更新日期: 2023-09-27 18:02:24

我尝试导入包含2列(例如日期和价格)的CSV文件并在控制台上打印它。但在我的控制台上,数字不是按列排序的。它们一个挨着一个。

第一个问题:如何在控制台上正确打印?

第二个问题:我可以将这两个数组组合起来,创建一个矩阵并在控制台上打印矩阵吗?这样容易吗?

下面是我的代码:
using system.IO;
var reader=new StreamReader(File.OpenRead(@"filename.csv");
list<string> listA=new list<string>();
list<string> listB=new list<string>();
while (!Reader.EndofStream)
{ 
     var Line=reader.ReadLine();
     var valuesline.split(';');  
     listA.Add(values[0]);
     listB.Add(values[1]);
}
console.WriteLine("Column1:"); 
foreah (var Element in listA)
{
    console.write(Element);
    console.WriteLine("Column2:"); 
}   
foreah (var Element in listB); 
{
    console.write(Element);
    string[] S= listA.toArray;
    string[] o=listB.toArray; 
}

如何在控制台中打印CSV文件

这听起来像是一个格式问题。

Console.WriteLine借用了string.Format来允许文本规范。Format允许一个位置的项目,并提供填充。你想要的是一个特别填充的列。

下面是一行三列的示例,注意数字0、1、2,它们按照规范索引数据。在索引值旁边是以下数字-15,它允许在每个列上填充15个空格以容纳数据:

Console.WriteLine("{0,-15} {1,-15} {2,-15}", "Alpha", "Beta", 12);
Console.WriteLine("{0,-15} {1,-15} {2,-15}", "More Text", "B", 122000);
输出:

Alpha           Beta            12             
More Text       B               122000 

在不知道输出应该是什么样子的情况下,我会创建一个类来存储我的结果,然后重写这个类的ToString函数。这样你就可以把你的结果串起来。

注意:我添加了两种方法来执行ToString,以向您展示您可以稍微使用它来获得您想要的输出格式。如果需要制表符之类的,可以将其添加到字符串格式中。

编辑:我改变CsvRow字符串,所以他们可以采取你的Csv值。我改变了ToString,以更符合您的需求。只需从CSV中获取类实例化它并将其打印到控制台。使用系统;使用System.Collections.Generic;

public class CsvRow
{
    public CsvRow()
    {
    }
    public CsvRow(string a, string b)
    {
        A = a;
        B = b;
    }
    public string A {get; set;}
    public string B {get; set;}
    public string ToString(int rowNumber)
    {
        return String.Format("Row{0}: {1} {2}", rowNumber, A, B);
    }
}
public class Program
{
    public static void Main()
    {
        var results = new List<CsvRow>();
        results.Add(new CsvRow(DateTime.Now.ToString(), "200"));
        results.Add(new CsvRow(DateTime.Now.ToString(), "300"));            
        var i = 0;
        foreach (var result in results)
        {
            Console.WriteLine(result.ToString(i));
            i++;
        }       
    }
}

链接到DotFiddle