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.
Author by
theNoobGuy
Updated on June 13, 2022Comments
-
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 theDataGridView
.Does anyone know a quick short way to do this?
-
theNoobGuy over 12 yearsCould you explain what is going on a bit more? I have never used a DataTable or a DataGridView.. :(
-
openshac over 12 yearsHi @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 over 11 yearsGetting "Method, Delegate or Event is expected" error at newRow(colIndex) = cols(colIndex);
-
Ollie Beumkes about 6 yearsI 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.