Putting a .txt file into a DataGridView

18,307

You could split the lines and loop all rows/columns to generate the DataTable:

var fileName = this.OpenFileDialog1.FileName;
var rows = System.IO.File.ReadAllLines(fileName);
Char[] separator = new Char [] {' '};
DataTable tbl = new DataTable(fileName);
if (rows.Length != 0) {
    foreach (string headerCol in rows(0).Split(separator)) {
        tbl.Columns.Add(new DataColumn(headerCol));
    }
    if (rows.Length > 1) {
        for (rowIndex = 1; rowIndex < rows.Length; rowIndex++) {
            var newRow = tbl.NewRow();
            var cols = rows(rowIndex).Split(separator);
            for (colIndex = 0; colIndex < cols.Length; colIndex++) {
                newRow(colIndex) = cols(colIndex);
            }
            tbl.Rows.Add(newRow);
        }
    }
}

Then use this DataTable as DataSource for your DataGridView.

Share:
18,307
theNoobGuy
Author by

theNoobGuy

Updated on June 13, 2022

Comments

  • theNoobGuy
    theNoobGuy almost 2 years

    I have an openFileButton that, when clicked, will open a file that looks like this:

    RefDeg  Part#       Xcntr    Ycntr    Rot  PkgStyle  
    U6      IC-00279G   33.411   191.494  0    QFP32     
    U1      IC-00272G   38.011   200.644  90   BGA177    
    U5      IC-00273G   46.311   179.494  0    QFP40     
    R54     EXCLUDES    36.411   173.694  0    0402_2    
    R71     EXCLUDES    38.236   186.994  0    0402_2    
    R39     EXCLUDES    38.861   188.544  90   0402_2    
    C23     CAP-00130G  37.911   178.854  90   0402_3    
    C88     CAP-00010G  52.036   179.019  0    0603_4    
    C89     CAP-00010G  43.561   173.744  90   0603_3    
    X1      XTL-00013G  49.211   204.819  0    Crystal   
    X2      XTL-00012G  53.061   183.469  0    Crystal   
    D1      LED-00011G  58.611   181.394  0    LED       
    U10     IC-00198G   56.661   205.744  0    SOT       
            IC-00173G   59.911   205.744  0    SOT23-5   
    U2      IC-00274G   51.786   199.044  0    VFBGA     
    Q1      Excludes    43.147   189.769  0    MOSFET    
    U4      IC-00167G   59.211   177.394  0    SOT235_2  
    FID1    FIDUCIAL    5.080    24.130   0    FIDUCIAL  
            FIDUCIAL    59.586   192.944  0    FIDUCIAL  
    

    When the file is selected and opened I would like to put/import the .txt files line into a DataGridView and then each column into a new column on that same line in the DataGridView.

    Does anyone know a quick short way to do this?

  • theNoobGuy
    theNoobGuy over 12 years
    Could you explain what is going on a bit more? I have never used a DataTable or a DataGridView.. :(
  • openshac
    openshac over 12 years
    Hi @theNoobGuy, I think if you are new to the DataTable and GridView object I recommend having a quick Google and samiliarising yourself with them, esp. the DataTable object as it's critical to handling data in .Net If there are any specific question about the code above let me know.
  • StackTrace
    StackTrace over 11 years
    Getting "Method, Delegate or Event is expected" error at newRow(colIndex) = cols(colIndex);
  • Ollie Beumkes
    Ollie Beumkes about 6 years
    I thought I would clarify for future users that the errors in the for loops can be fixed by declaring colIndex and rowIndex and integers with int and when pointing to them in the for loops use square braces [] instead of brackets () as with rows(0), should be rows[0]. Cheers Tim.