Codeby web-security - новый курс от Codeby Security School

Представляем вашему вниманию новый курс от команды The Codeby - "Тестирование Веб-Приложений на проникновение с нуля". Общая теория, подготовка рабочего окружения, пассивный фаззинг и фингерпринт, Активный фаззинг, Уязвимости, Пост-эксплуатация, Инструментальные средства, Social Engeneering и многое другое. Подробнее ...


Загрузка csv файла с выводом данных в dataGridView

Сегодня хочу показать на простом примере, как выполняется загрузка и чтение CSV файла с помощью языка c#. И так, для начала создадим Windows Forms приложение, после чего поместим на форму два элемента управления: кнопку и datagridview, в который будем выводить полученные данные.

Windows Forms Application

Затем создадим csv файл (cars.csv) и поместим в него 4 записи. Как Вы, наверное, знаете, формат csv подразумевает наличие некоторых правил формирования документа, так например: каждая строка заканчивается символами CLRF, а каждая запись, которая содержится в строке, запятыми.

csv файл

На этом подготовительная работа закончена и теперь переходим к решению основной задачи.

И так, чтобы прочитать и загрузить CSV файл нам понадобиться метод ReadAllLines, который позволяет построчно считать данные из файла.

string [] cars = File.ReadAllLines(@"C:\Cars.csv");

Чтение файла

Строки получены и теперь нам осталось выполнить всего две задачи:

1. Разбить каждую строку массива cars на отдельные значения. Для этого воспользуемся методом Split, в качестве параметра в который передадим знак-разделитель, которым в данном примере является запятая.

Split(',')

метод Split


Paranoid - курс от Codeby Security School

Представляем вашему вниманию курс от команды codeby - "Комплекс мер по защите персональных данных, анонимности в интернете и не только" Подробнее ...


2. Вывести полученные данные в окно datagridview. Для решения этой задачи создадим небольшую таблицу (DataTable), которая содержит пять колонок: фирма, название, год, максимальная скорость и цена, после чего заполним её ранее полученными одиночными значениями.

заполненный datagridview

Полный листинг

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;
}

Загружаем CSV файл и выводим данные в dataGridView.

private void button1_Click(object sender, EventArgs e)
{
dataGridView1.DataSource = ReadCSVFile(@"c:\Cars.csv");
}

На этом всё, если есть какие-то вопросы, то оставляйте их в комментариях.

Читайте также:


Codeby Market от Сodeby

Мы запустили свой магазин CodebyMarket Equipment for InfoSec. Уже добавили RaspberryAlfa Long-RangeOrange PiArduino и многое другое. Купить Pentesting Devices