Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как извлечь данные из Excel в datagridview по двум 
:(
    Опции темы
vngr6
Дата 12.10.2016, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 3.10.2016

Репутация: нет
Всего: нет



ИМЕЕТСЯ
База данных в Ексель
База данных строки - 10 000 шт;
                         столбцы - 10 шт;

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

КОД
Код

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. Скрин


Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  kd2.zip 129,26 Kb
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1031 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.