c#读取csv文件中的某一列的数据

chat8 (chat779.com)

上面试GPT-3.5,很好的浏览网站,输入问题,可得到答案。

问题1:c#如何在csv中读取某一列数据

解答方案:在 C#中,你可以使用File.ReadAllLines来读取CSV中的所有行,然后逐行解析每一行的列数据。

using System;
using System.IO;

class Program
{
    static void Main()
    {
        // 指定CSV文件的路径
        string csvFilePath = "path/to/your/file.csv";

        // 指定要读取的列号
        int targetColumnNumber = 2; // 例如,要读取第二列

        // 调用ReadCsvColumn方法,传入文件路径和目标列号
        string[] targetColumn = ReadCsvColumn(csvFilePath, targetColumnNumber);

        // 打印目标列的内容
        Console.WriteLine("Target Column:");
        Console.WriteLine(string.Join(Environment.NewLine, targetColumn));
    }

    static string[] ReadCsvColumn(string filePath, int columnNumber)
    {
        // 读取CSV文件的所有行
        string[] allLines = File.ReadAllLines(filePath);

        // 创建一个列表来存储目标列的数据
        var targetColumn = new List<string>();

        // 遍历每一行,解析目标列的数据
        foreach (var line in allLines)
        {
            // 使用逗号分隔符解析CSV行
            string[] columns = line.Split(',');

            // 确保目标列号在有效范围内
            if (columnNumber > 0 && columnNumber <= columns.Length)
            {
                // 获取目标列的数据并添加到列表中
                targetColumn.Add(columns[columnNumber - 1]);
            }
            else
            {
                // 列号无效,你可以选择抛出异常或者采取其他处理方式
                // 这里演示的是将空字符串添加到列表中
                targetColumn.Add(string.Empty);
            }
        }

        // 返回目标列的数据
        return targetColumn.ToArray();
    }
}

在这个例子中,ReadCsvColumn方法接受文件路径和目标列号作为参数,使用File.ReadAllLines读取整个CSV文件,然后遍历每一行,解析目标列的数据。请注意,这个例子使用逗号作为CSV文件的分隔符,你可能根据实际情况调整分割符。

同样,记得在实际应用中可能出现的异常,例如文件不存在、列号无效等。

现在分解上面示例的代码到项目中,调整了下:

 private void button3_Click(object sender, EventArgs e)
 {
     // 制定CSV文件的路径 // 修改了地址,读取了自己的csv文件
     string csvFilePath = "F:\\读取csv\\110811.csv";


     //指定要读取的列号 //修改了自己要读去的列号
     int targetColumnNumber = 7; // 例如要读取第7列


     // 调用ReadCsvColumn方法,传入文件路径和目标列号
     string[] targetColumn = ReadCsvColumn(csvFilePath, targetColumnNumber);


     // 打印目标列的内容
     Console.WriteLine("Target Column:");
     Console.WriteLine(string.Join(Environment.NewLine, targetColumn));
     
     // 将读到的列的内容 //增加了将目标列号第一行读入到文本框中
     richTextBox2.Text = targetColumn[1];
 }

将ReadCsvColumn方法函数未作修改,直接复制到窗体代码中,注意,不是复制到按钮代码中。

static string[] ReadCsvColumn(string filePath, int columnNumber)
{
    // 读取CSV文件的所有行 // 这里的ReadAllLines改为System.IO.File.ReadAllLines,否则
//会报错,并且增加Encoding.GetEncoding("GBK")来防止读取的中文数据是错误码!!!
    string[] allLines = System.IO.File.ReadAllLines(filePath, Encoding.GetEncoding("GBK"));

    // 创建一个列表来存储目标列的数据
    var targetColumn = new List<string>();

    // 遍历每一行,解析目标列的数据
    foreach (var line in allLines)
    {
        //使用逗号分隔符解析CSV行
        string[] columns = line.Split(',');

        // 确保目标列号在有效范围内
        if (columnNumber > 0 && columnNumber <= columns.Length)
        {
            // 获取目标列的数据并添加到列表中
            targetColumn.Add(columns[columnNumber - 1]);
        }
        else
        {
            // 列号无效,你可以选择抛出异常或者采取其他处理方式
            // 这里演示的是将空字符串添加到列表中
            targetColumn.Add(string.Empty);
        }
    }

    // 返回目标列的数据
    return targetColumn.ToArray();
}

这样就可以实现将一个csv文件中的数据读取到winform窗体中的作用。

代码详解:

C#中的var关键字,转载于http://t.csdnimg
.cn/TdUca

var是3.5新出的一个定义变量的类型,其实也就是弱化类型的定义,var可代替任何类型,编译器会根据上下文来判断你到底是想用什么类型的,至于什么情况下用到var,当无法确定自己将用的是什么类型,就可以使用var,类似object但是效率比object高。

举个例子:假如现在遍历一个数组,此时我们不知道数组中存储的数据类型是什么,此时使用var关键字就合适。

或者通俗的讲:var可以理解为匿名类型,我们可以认为它是一个声明变量的占位符,它主要用于在声明变量时,无法确定数据类型时使用。

使用var定义变量的特点

1.在定义变量的时候,必须先给值,不能为null,也不能只定义不给值,必须是var s = "abcd"的形式,而不能是如下形式:var s; s = "abcd";

2. 一旦初始化完成,就不能再给变量赋与初始化值类型不同的值了。

3. var要求是局部变量,无法使用var来定义一个全局变量,只能定义在方法的内部(因为预先不可知,所以预先不可置)。

4. 使用var定义变量和object不同,他在效率和使用强类型方式定义变量完全一样。

5.不能用来定义函数的签名,包括返回值,参数类别。

new List<string>()

创建一个空列表

相关推荐

  1. Python提取文本文档符合条件

    2024-02-08 10:58:04       13 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-08 10:58:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-08 10:58:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-08 10:58:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-08 10:58:04       18 阅读

热门阅读

  1. js实现LFU算法

    2024-02-08 10:58:04       38 阅读
  2. golang设置

    2024-02-08 10:58:04       41 阅读
  3. 2月05日,每日信息差

    2024-02-08 10:58:04       30 阅读
  4. npm_config_xxx

    2024-02-08 10:58:04       29 阅读
  5. 如何做零售企业满意度调查

    2024-02-08 10:58:04       34 阅读
  6. 深度学习的进展

    2024-02-08 10:58:04       34 阅读
  7. 学习总结14

    2024-02-08 10:58:04       32 阅读