Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
12 / 12 / 0
Регистрация: 22.02.2013
Сообщений: 162
1

SQL Excel

31.10.2015, 15:27. Показов 1120. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравстввуйте! Есть документ Excel в котором нет листов. Как необходимо построить запрос через ACE OLEDB 4.0 чтобы получить данные в datateble

SQL
1
SELECT * FROM [Лист1$]
на это ругается что лист1 не найден

в Excel Документе адреса ячеек типа R1505C2

Добавлено через 1 минуту
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
        {
            string file = openFileDialog1.FileName;
            try
            {
                System.Data.OleDb.OleDbConnection MyConnection;
                System.Data.DataSet DtSet;
                System.Data.OleDb.OleDbDataAdapter MyCommand;
                MyConnection = new System.Data.OleDb.OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" + file + "';Extended Properties='Excel 12.0;HDR=YES;'");
                MyCommand = new System.Data.OleDb.OleDbDataAdapter("select * from [Лист1$]", MyConnection);
                MyCommand.TableMappings.Add("Table", "TestTable");
                DtSet = new System.Data.DataSet();
                MyCommand.Fill(DtSet);
                dataGridView1.DataSource = DtSet.Tables[0];
                MyConnection.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            
        }
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.10.2015, 15:27
Ответы с готовыми решениями:

Экспорт из C# sql в Excel
Всем привет! Таблицу SQL нужно экспортировать в Excel. Делаю таким способом:...

Импорт from EXCEL to SQL
Добрый день уважаемые форумчане) Столкнулся с проблемой импорта в sql serve 2012. Суть ее такова...

Импорт из Excel в MS SQL
мой вопрос уже отображается в теме, но сформулирую его еще раз: у меня есть файл ехеля и мне нужно...

Экспорт данных из MS SQL в Excel
Подскажите, пожалуйста, как можно экспортировать данные из MS SQL в Excel. Желательно бы с...

6
2806 / 1676 / 884
Регистрация: 14.04.2015
Сообщений: 5,717
02.11.2015, 09:35 2
а если попробовать вместо лист1 - [sheet1$] ?)
0
12 / 12 / 0
Регистрация: 22.02.2013
Сообщений: 162
02.11.2015, 12:04  [ТС] 3
SQL Excel
0
784 / 615 / 273
Регистрация: 04.08.2015
Сообщений: 1,707
02.11.2015, 13:02 4
А если открыть файл Excel и посмотреть, как называется лист?
0
12 / 12 / 0
Регистрация: 22.02.2013
Сообщений: 162
02.11.2015, 13:52  [ТС] 5
Нет вкладок листов. если нажать кнопку разделения листов то документ расспадаеться на много частей и листовю
0
784 / 615 / 273
Регистрация: 04.08.2015
Сообщений: 1,707
02.11.2015, 15:29 6
Лучший ответ Сообщение было отмечено MACTEP434 как решение

Решение

Считываем схему файла
C#
1
2
3
4
5
6
7
8
9
10
11
12
public static DataTable GetOLEDBShemaTable(string PathToFile)
        {
            using (OleDbConnection connection = new OleDbConnection
                       (@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + PathToFile + ";Extended Properties='Excel 12.0;HDR=Yes;IMEX=1';"))
            {
                connection.Open();
                DataTable tableMetaData =
                    connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[4] { null, null, null, "TABLE" });
                connection.Close();
                return tableMetaData;
            }
        }
Пробегаемся циклом по строкам.
C#
1
2
3
4
5
6
7
8
9
DataTable shema = GetOLEDBShemaTable(PathToFile);
                    foreach (DataRow row in shema.Rows)
                    {
                        string sheetName = (string)row["TABLE_NAME"];
                        if (sheetName.EndsWith("$"))
                        {
                            //sheetName-имя листа
                        }
                    }
Так можно получить имена всех листов в книге. Если не поможет, посмотрите в отладчике, что в схеме.
1
12 / 12 / 0
Регистрация: 22.02.2013
Сообщений: 162
03.11.2015, 11:04  [ТС] 7
Цитата Сообщение от Igr_ok Посмотреть сообщение
Считываем схему файла
C#
1
2
3
4
5
6
7
8
9
10
11
12
public static DataTable GetOLEDBShemaTable(string PathToFile)
        {
            using (OleDbConnection connection = new OleDbConnection
                       (@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + PathToFile + ";Extended Properties='Excel 12.0;HDR=Yes;IMEX=1';"))
            {
                connection.Open();
                DataTable tableMetaData =
                    connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[4] { null, null, null, "TABLE" });
                connection.Close();
                return tableMetaData;
            }
        }
Пробегаемся циклом по строкам.
C#
1
2
3
4
5
6
7
8
9
DataTable shema = GetOLEDBShemaTable(PathToFile);
                    foreach (DataRow row in shema.Rows)
                    {
                        string sheetName = (string)row["TABLE_NAME"];
                        if (sheetName.EndsWith("$"))
                        {
                            //sheetName-имя листа
                        }
                    }
Так можно получить имена всех листов в книге. Если не поможет, посмотрите в отладчике, что в схеме.
Спасибо огромное. Лист оказался один под названием TDsheet
0
03.11.2015, 11:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.11.2015, 11:04
Помогаю со студенческими работами здесь

Импорт данных из Excel в MS SQL
Добрый день. Знаю что много таких вопросов и большую часть из них я просмотрел не найдя ответа. ...

Импорт данных из Excel в БД SQL
Доброе время суток! Помогите народ, диплом горит :help::help::help: Как реализовать перенос данных...

Экспорт данных из файла Excel в БД SQL
Здравствуйте! Надо написать программу для экспорта данных из файла Excel в БД SQL. Помогите...

Импорт из Excel в DVG и сохранение в SQL
Импортирую из Excel в DVG следующим образом: private void button2_Click(object sender, EventArgs...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru