Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Formul21
0 / 0 / 2
Регистрация: 17.05.2015
Сообщений: 3
#1

Запись в dataGridView объединенных ячеек из excel - C#

07.11.2016, 22:51. Просмотров 458. Ответов 1

Реализую заполнение элемента dataGridView данными из excel.

Все получается, добился заполнения dataGridView данными из excel по необходимой области, но столкнулся с проблемой импорта в dataGridView объединенных ячеек, в таблице dataGrid объеденные ячейки разъединяются и информация сохраняется в 1 из ячеек.

Можно ли как то реализовать загрузку объединенных ячеек из excel?

P.S. Не совсем понимаю в чем ошибка, но подозреваю что DataTable не поддерживает объеденные ячейки(и другую разметку), и сам импорт из excel не поддерживает сохранение "разметки" листа excel.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.DefaultExt = "*.xls;*.xlsx";
            ofd.Filter = "Excel 2007(*.xlsx)|*.xlsx"; 
            ofd.Title = "Выберите файл для загрузки данных";
 
            if (ofd.ShowDialog() == DialogResult.OK)
            {
                textBox1.Text = ofd.FileName;
 
                String constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
                                ofd.FileName +
                                ";Extended Properties='Excel 12.0 XML;HDR=YES;IMEX=1;';";
 
                System.Data.OleDb.OleDbConnection con =
                    new System.Data.OleDb.OleDbConnection(constr);
                con.Open();
 
                DataSet ds = new DataSet();
                DataTable schemaTable = con.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables,
                    new object[] { null, null, null, "TABLE" });
 
                string sheet1 = (string)schemaTable.Rows[0].ItemArray[2];
                string select = String.Format("SELECT * FROM [{0}A{1}:{2}]", sheet1, textBox2.Text, textBox3.Text);
 
                System.Data.OleDb.OleDbDataAdapter ad =
                    new System.Data.OleDb.OleDbDataAdapter(select, con);
 
                ad.Fill(ds);
                DataTable tb = ds.Tables[0];
                con.Close();
 
                dataGridView1.DataSource = tb;
            }
            else
            {
                MessageBox.Show("Файл для открытия не выбран");
            }
        }
И за компанию:
Так я заполняю dataGridView1 данными из tb, выводятся все данные из tb, но как получить только часть строк, по идее что то типа tb.Rows[...] но не как не могу дойти до того как именно.
C#
1
2
DataTable tb = ds.Tables[0];
dataGridView1.DataSource = tb;

http://www.cyberforum.ru/windows-forms/thread594428.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2016, 22:51
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Запись в dataGridView объединенных ячеек из excel (C#):

Взаимодействие с Excel, передача строки из DataGridView в столбец Excel
Всем привет. Есть DataGridView в котором всего 1 строка и 10 столбцов...

DataGridView закрашивание ячеек
Здравствуйте! У меня есть код: public int width; public int...

Сумма ячеек datagridview
Здравствуйте, столкнулся с проблемой, нужно посчитать сумму елементов двох...

Редактирование ячеек DataGridView
Доброго времени суток!!! Есть DataGridView со столбцом типа...

Заполнение ячеек в DataGridView
Здравствуйте! есть вот такая таблица в datagridview. как прописать код в...

1
Serg34
90 / 90 / 33
Регистрация: 20.09.2014
Сообщений: 411
Записей в блоге: 3
Завершенные тесты: 1
09.11.2016, 11:03 #2
Цитата Сообщение от Formul21 Посмотреть сообщение
проблемой импорта в dataGridView объединенных ячеек
Ни dataGridView ни DataTable не поддерживает объединение ячеек.
Цитата Сообщение от Formul21 Посмотреть сообщение
импорт из excel не поддерживает сохранение "разметки" листа excel
Из Excel импортируется только содержимое ячеек.
Цитата Сообщение от Formul21 Посмотреть сообщение
как получить только часть строк
Если Вам нужна фильтрация отображения строк, то попробуйте это, а лучше это
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.11.2016, 11:03
Привет! Вот еще темы с решениями:

Значения ячеек datagridview
Здрасте. Есть необходимость очищать значения ячеек в datagridview, а затем...

DataGridView выделение ячеек
Доброе утро, в общем у меня имеется СУБД для управление Базой данных вокзала.И...

Суммирование ячеек в DataGridView
Здравствуйте. Помогите, как сделать чтобы значение Summ менялось автоматически...

Закраска ячеек DataGridView
Ячейки то закрашиваются, но при повторном поиске закраска добавляется...Конечно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru