Загрузка csv файла с выводом данных в dataGridView
Сегодня хочу показать на простом примере, как выполняется загрузка и чтение CSV файла с помощью языка c#. И так, для начала создадим Windows Forms приложение, после чего поместим на форму два элемента управления: кнопку и datagridview, в который будем выводить полученные данные.
Затем создадим csv файл (cars.csv) и поместим в него 4 записи. Как Вы, наверное, знаете, формат csv подразумевает наличие некоторых правил формирования документа, так например: каждая строка заканчивается символами CLRF, а каждая запись, которая содержится в строке, запятыми.
На этом подготовительная работа закончена и теперь переходим к решению основной задачи.
И так, чтобы прочитать и загрузить CSV файл нам понадобиться метод ReadAllLines, который позволяет построчно считать данные из файла.
Строки получены и теперь нам осталось выполнить всего две задачи:
1. Разбить каждую строку массива cars на отдельные значения. Для этого воспользуемся методом Split, в качестве параметра в который передадим знак-разделитель, которым в данном примере является запятая.
2. Вывести полученные данные в окно datagridview. Для решения этой задачи создадим небольшую таблицу (DataTable), которая содержит пять колонок: фирма, название, год, максимальная скорость и цена, после чего заполним её ранее полученными одиночными значениями.
Полный листинг
Загружаем CSV файл и выводим данные в dataGridView.
На этом всё, если есть какие-то вопросы, то оставляйте их в комментариях.
Читайте также:
Сегодня хочу показать на простом примере, как выполняется загрузка и чтение CSV файла с помощью языка c#. И так, для начала создадим Windows Forms приложение, после чего поместим на форму два элемента управления: кнопку и datagridview, в который будем выводить полученные данные.
Затем создадим csv файл (cars.csv) и поместим в него 4 записи. Как Вы, наверное, знаете, формат csv подразумевает наличие некоторых правил формирования документа, так например: каждая строка заканчивается символами CLRF, а каждая запись, которая содержится в строке, запятыми.
На этом подготовительная работа закончена и теперь переходим к решению основной задачи.
И так, чтобы прочитать и загрузить CSV файл нам понадобиться метод ReadAllLines, который позволяет построчно считать данные из файла.
C#:
string [] cars = File.ReadAllLines(@"C:\Cars.csv");
Строки получены и теперь нам осталось выполнить всего две задачи:
1. Разбить каждую строку массива cars на отдельные значения. Для этого воспользуемся методом Split, в качестве параметра в который передадим знак-разделитель, которым в данном примере является запятая.
C#:
Split(',')
2. Вывести полученные данные в окно datagridview. Для решения этой задачи создадим небольшую таблицу (DataTable), которая содержит пять колонок: фирма, название, год, максимальная скорость и цена, после чего заполним её ранее полученными одиночными значениями.
Полный листинг
C#:
private DataTable ReadCSVFile(string pathToCsvFile)
{
//создаём таблицу
DataTable dt = new DataTable("Cars");
//создаём колонки
DataColumn colCompany;
colCompany = new DataColumn("Company", typeof(String));
DataColumn colName;
colName = new DataColumn("Name", typeof(String));
DataColumn colYear;
colYear = new DataColumn("Year", typeof(Int32));
DataColumn colMaxSpeed;
colMaxSpeed = new DataColumn("MaxSpeed", typeof(Int32));
DataColumn colPrice;
colPrice = new DataColumn("Price", typeof(Double));
//добавляем колонки в таблицу
dt.Columns.AddRange(new DataColumn [] {colCompany, colName,
colYear, colMaxSpeed,
colPrice});
try
{
DataRow dr = null;
string [] carValues = null;
string [] cars = File.ReadAllLines(pathToCsvFile);
for (int i = 0; i < cars.Length; i++)
{
if (!String.IsNullOrEmpty(cars[i]))
{
carValues = cars[i].Split(',');
//создаём новую строку
dr = dt.NewRow();
dr["Company"] = carValues[0];
dr["Name"] = carValues[1];
dr["Year"] = int.Parse(carValues[2]);
dr["MaxSpeed"] = int.Parse(carValues[3]);
dr["Price"] = Double.Parse(carValues[4]);
//добавляем строку в таблицу
dt.Rows.Add(dr);
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
return dt;
}
C#:
private void button1_Click(object sender, EventArgs e)
{
dataGridView1.DataSource = ReadCSVFile(@"c:\Cars.csv");
}
Читайте также: