На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> Как извлечь данные из Excel в datagridview по двум условиям?
    ИМЕЕТСЯ
    База данных в Ексель
    База данных строки - 10 000 шт;
    столбцы - 10 шт;

    ВОПРОС
    1. Каким способом оптимально извлечь из Ексель данные по двум условиям в три разные datagridview ?
    2. Извлекаются следующие столбцы таблицы:
    - ID
    - наименование
    - кол 
    3. Таблица извлекается с заголовками столбцов (по возможности);

    КОД

    ExpandedWrap disabled
      using System;
      using System.Collections.Generic;
      using System.ComponentModel;
      using System.Data;
      using System.Data.OleDb;
      using System.Drawing;
      using System.Linq;
      using System.Text;
      using System.Windows.Forms;
       
      namespace test
      {
          public partial class Form1 : Form
          {
              public Form1()
              {
                  InitializeComponent();
              }
       
              private void button1_Click(object sender, EventArgs e)
              {
                  OleDbConnection connection = new OleDbConnection(String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0 Xml;HDR=NO\";", textBox1.Text));
       
                  connection.Open();
                  OleDbCommand command = new OleDbCommand("SELECT * FROM [Лист1$]", connection);
                  OleDbDataReader reader = command.ExecuteReader();
                  dataGridView1.Columns.Add("1", "1");
                  dataGridView2.Columns.Add("1", "1");
                  dataGridView3.Columns.Add("1", "1");
                  while (reader.Read())
                  {
                      if (reader[0].ToString() == textBox2.Text)
                      {
                          if (Convert.ToInt32(reader[1]) > 10 && Convert.ToInt32(reader[1]) < 14) dataGridView1.Rows.Add(reader[1].ToString());
                          if (Convert.ToInt32(reader[1]) > 20 && Convert.ToInt32(reader[1]) < 24) dataGridView2.Rows.Add(reader[1].ToString());
                          if (Convert.ToInt32(reader[1]) > 30 && Convert.ToInt32(reader[1]) < 34) dataGridView3.Rows.Add(reader[1].ToString());
                      }
                  }
                  connection.Dispose();
              }
       
              private void textBox1_DoubleClick(object sender, EventArgs e)
              {
                  openFileDialog1.Filter = "Excel 2003(*.xls)|*.xls|Excel 2007(*.xlsx)|*.xlsx";
                  if (openFileDialog1.ShowDialog() == DialogResult.OK)
                  {
                      textBox1.Text = openFileDialog1.FileName;
                  }
              }
          }
      }


    СЦЕНАРИЙ
    1. Вносим ID задания.
    2. Вносим путь к файлу.
    3. Нажимаем кнопку "ИЗВЛЕЧЬ".
    4. Данные извлекаются в зависимости от "ID" и "порядковый номер" в соответствующую datagridview.


    ПРИЛОЖЕНИЕ
    1. Проект.
    2. Скрин
    Прикреплённый файлПрикреплённый файлkd2.rar (35,28 Кбайт, скачиваний: 81)
    Прикреплённый файлПрикреплённый файл2.jpg (99,58 Кбайт, скачиваний: 395)
    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
    0 пользователей:


    Рейтинг@Mail.ru
    [ Script execution time: 0,0187 ]   [ 19 queries used ]   [ Generated: 26.04.24, 06:02 GMT ]