在 c#.net 中将值/数据从一列拆分为 3 个单独的列

发布于 2024-10-25 08:51:13 字数 382 浏览 1 评论 0原文

我在 datagridview 中读取/显示 csv 文件时遇到一些困惑。

情况是这样的,我正在读取由 7 个连续数据/列/字段组成的 csv 文件。我正在尝试在包含 9 列/字段的 datagridview 中显示这些数据。

现在,csv 文件中的 7 个数据/列/字段由 0 到 3 或 1 到 3 的组合组成。我想将 csv 中 7 列/字段的数据拆分为 datagridview 的最后 3 列/字段。

例如)。 csv 字段中的 7 列由 123 组成,然后在 datagridview 中,列/字段 7 中的值 = 1 列/字段 8 = 2 和列/字段 9 = 3。

我想知道,是否可以在 C#.NET 中将值拆分为 3 个不同的列。

谢谢, 鲁沙卜·沙阿。

I have some confusion in reading/displaying csv file in datagridview.

Here is the situation, I am reading csv file which consist of 7 data/column/fields in a row. I am trying to display those data in datagridview which contain 9 column/fields.

Now, 7 data/column/field in csv file consist value either from 0 to 3 or in combination of 1 to 3. I want to split the data of 7 column/field in csv into last 3 column/field of datagridview.

eg). 7 column in csv field consist 123 then in datagridview it value in column/field 7 = 1
column/field 8 = 2 and column/field 9 = 3.

I want to know that, is it possible to split value into 3 different column in C#.NET.

Thanks,
Rushabh Shah.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

女中豪杰 2024-11-01 08:51:13

我将创建一个类来存储 CSV 中的每条记录(行)。在此类中公开了与 DataGridView 中的九列相对应的九个属性。该类将处理将第七列的值拆分为第八列和第九列的逻辑,就像您所描述的那样。

当您在 CSV 中读取时,创建此类的实例,将它们放入列表(或其他集合)中并将列表绑定到 DataGridView。

这就是我的意思。创建以下类:

class Record
{
    public Record(string line) {
        string[] fields = line.Split(',');
        Field1 = fields[0];
        Field2 = fields[1];
        Field3 = fields[2];
        Field4 = fields[3];
        Field5 = fields[4];
        Field6 = fields[5];
        Field7 = fields[6].Substring(0, 1);
        Field8 = fields[6].Substring(1, 1);
        Field9 = fields[6].Substring(2, 1);
    }
    public string Field1 { get; private set; }
    public string Field2 { get; private set; }
    public string Field3 { get; private set; }
    public string Field4 { get; private set; }
    public string Field5 { get; private set; }
    public string Field6 { get; private set; }
    public string Field7 { get; private set; }
    public string Field8 { get; private set; }
    public string Field9 { get; private set; }
}

将 DataGridView 放在表单上并运行它:

// Create a bunch of Record objects.  Note: r1-f3 = record 1, field 3.
List<Record> recordList = new List<Record> { new Record("r1-f1,r1-f2,r1-f3,r1-f4,r1-f5,r1-f6,123"), 
                                             new Record("r2-f1,r2-f2,r2-f3,r2-f4,r2-f5,r2-f6,456"), 
                                             new Record("r3-f1,r3-f2,r3-f3,r3-f4,r3-f5,r3-f6,789")};
dataGridView1.DataSource = recordList;

请注意,这是极其脆弱的代码,您将需要在生产应用程序中以不同的方式执行我在此显示的几乎所有内容。但它确实表明了我的意思。

I would create a class to store each record (row) in your CSV. In this class expose nine properties that correspond to the nine columns in your DataGridView. The class would handle the logic of splitting the values of your seventh column into the eight and nineth columns like you described.

When you read in your CSV create instances of this class, put them in a List (or another collection) and bind the list to the DataGridView.

Here's what I mean. Create the following class:

class Record
{
    public Record(string line) {
        string[] fields = line.Split(',');
        Field1 = fields[0];
        Field2 = fields[1];
        Field3 = fields[2];
        Field4 = fields[3];
        Field5 = fields[4];
        Field6 = fields[5];
        Field7 = fields[6].Substring(0, 1);
        Field8 = fields[6].Substring(1, 1);
        Field9 = fields[6].Substring(2, 1);
    }
    public string Field1 { get; private set; }
    public string Field2 { get; private set; }
    public string Field3 { get; private set; }
    public string Field4 { get; private set; }
    public string Field5 { get; private set; }
    public string Field6 { get; private set; }
    public string Field7 { get; private set; }
    public string Field8 { get; private set; }
    public string Field9 { get; private set; }
}

Drop a DataGridView on a form and run this:

// Create a bunch of Record objects.  Note: r1-f3 = record 1, field 3.
List<Record> recordList = new List<Record> { new Record("r1-f1,r1-f2,r1-f3,r1-f4,r1-f5,r1-f6,123"), 
                                             new Record("r2-f1,r2-f2,r2-f3,r2-f4,r2-f5,r2-f6,456"), 
                                             new Record("r3-f1,r3-f2,r3-f3,r3-f4,r3-f5,r3-f6,789")};
dataGridView1.DataSource = recordList;

Note that this is extremely fragile code and you'll want to do almost everything I show here differently in a production application. It does show what I mean though.

深海夜未眠 2024-11-01 08:51:13

首先,将 CSV 文件数据放入数据表中,然后在下一步中放置一个循环并解析值列虎钳和
例如: if(dataTable.Row[index][7]==123;
然后将值拆分为数组,然后将数组值设置为数据表

First you get the CSV file data into a Data Table and in the next step you put a loop and parse the value column vise and
ex: if(dataTable.Row[index][7]==123;
then splite the value into an array then set the array value to data Table

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文