|
|
|
Экспорт данных из Excel в таблицу базы данных
|
|||
|---|---|---|---|
|
#18+
Доброе время суток !!! По заголовку темы понятно о чем речь, но подробнее: Есть файл excel, в нем есть записи, необходимо выгрузить данные в таблицу SQL. Существует много способов выгрузки данных: 1. Можно или подключить библиотеку и работать с ней 2. Можно в sql запросом, к примеру, Код: plaintext 1. Если вы знаете еще методы выгрузки,то пишите здесь, буду очень признателен расширить свой кругозор, может ваш метод будет проще :) Зная это, я решил выбрать 3-й вариант, т.к. 1-й как мне показалось геморойный, 2-й не подходит, т.к. конечная таблица находится на sybase и вот код который я сделал c помощью ODBC, т.к. не понял, что лучше: Код: plaintext 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. 41. 42. 43. 44. 45. 46. 47. 48. вот код для создания бд Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. в принципе это все работает, но я бы хотел сделать более гибкую систему: т.е. возможно ли как-то сделать, чтобы не создавать таблицу в бд, т.к. я могу не знать количество и названия столбцов и можно ли как-то всю datatble вставить в бд, не пробегаясь по строкам. Т.е. в итоге, чтобы грузить любой excel файл, не зная сколько там столбцо и их названий, что мне нужно поменять или добавит в моем коде ? а может у вас есть свой вариант, буду признателен, т.к. охота иметь более автоматизированную вещь, а так это получаетсякак одноразовая посуда :( Жду предложений :wink: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2010, 11:30 |
|
||
|
Экспорт данных из Excel в таблицу базы данных
|
|||
|---|---|---|---|
|
#18+
dmitriy22охота иметь более автоматизированную вещь Чтобы помочь Вам поиметь "более автоматизированную вещь", надо знать, что Вы автоматизируете. Если Ваша цель "взять что угодно из какой угодно книги Excell и поместить в не-пойми-какую таблицу БД" - это будет затруднительно. Еще не понятно, чем Вас обидела СУБД Sybase: "2-й не подходит, т.к. конечная таблица находится на sybase"? Вот Вам еще вариант в Вашу необъятную копилку знаний: подключиться собственно к Excell, как к OLE-объекту и попросить у него данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2010, 11:51 |
|
||
|
Экспорт данных из Excel в таблицу базы данных
|
|||
|---|---|---|---|
|
#18+
Курдль, а как тогда 2-й вариант в Sybase реализовать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2010, 12:00 |
|
||
|
Экспорт данных из Excel в таблицу базы данных
|
|||
|---|---|---|---|
|
#18+
dmitriy22Курдль, а как тогда 2-й вариант в Sybase реализовать ? Вы хотите, чтобы я все за Вас написал, или все же конкретизируете, что именно у Вас не получается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2010, 12:29 |
|
||
|
Экспорт данных из Excel в таблицу базы данных
|
|||
|---|---|---|---|
|
#18+
Да можно сделать такую таблицу Код: plaintext 1. 2. 3. 4. 5. И потихонечку перебирая по очереди все ячейки страницы заполнять эту таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2010, 13:48 |
|
||
|
Экспорт данных из Excel в таблицу базы данных
|
|||
|---|---|---|---|
|
#18+
Курдль, во-первых если бы я хотел, чтобы за меня написали, то я не приводил здесь работающий код, который сам сделал, но который хотел бы оптимизировать. Во вторых пример запроса по 2-му варианту в sql я написал, там он работает, а вот в sybse - нет, вот я и спрашиваю какой тогда код надо написать, может для sybase синтаксис другой ну и о том, что я хочу добиться, чтобы мог экспортировать любой excel файл, не зная сколько в нем таблиц изначально создавать под него таблицу sql и вставлять туда данные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2010, 13:52 |
|
||
|
Экспорт данных из Excel в таблицу базы данных
|
|||
|---|---|---|---|
|
#18+
dmitriy22ну и о том, что я хочу добиться, чтобы мог экспортировать любой excel файл, не зная сколько в нем таблиц изначально создавать под него таблицу sql и вставлять туда данные Я все равно не понял, чего Вы хотите добиться. Как Вам помочь, если Вы ленитесь сформулировать свой вопрос по-русски? Я не могу представить себе, что будет за такая БД, пусть на Sybase, в которой будут накапливаться не-пойми-какие таблицы, созданные на лету из "любых excel-файлов"? Как потом из этой БД данные извлекать, если Вы не будете знать заранее структуру этих таблиц? Я Вас просил описать бизнес-задачу. Какой процесс Вы пытаетесь автоматизировать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2010, 14:38 |
|
||
|
Экспорт данных из Excel в таблицу базы данных
|
|||
|---|---|---|---|
|
#18+
Курдль, во-первых когда я вытаскиваю из excel данные, то отсекается первая строка, которая превращается в поля F1,F2,F3...., причем если в первой строке есть текст, то столбец этот тоже будет текст и он datatable попадет как Column, а не как Row потом вопрос как втавить разом всю строчку по всем столбцам, т.е. не как я авторstring strCom2 = "insert into tmp_export_excel select" + "'" + row[0].ToString() + "'," + "'" + row[1].ToString() + "'," + "'" + row[2].ToString() + "'," + "'" + row[3].ToString() + "'," + "'" + row[4].ToString() + "'," + "'" + row[5].ToString() + "'," + "'" + row[6].ToString() + "'," + "'" + row[7].ToString() + "'," + "'" + row[8].ToString() + "'," + "'" + row[9].ToString() + "'," + "'" + row[10].ToString() + "'," + "'" + row[11].ToString() + "'," + "'" + row[12].ToString() + "'," + "'" + row[13].ToString() + "'," + "'" + row[14].ToString() + "'," + "'" + row[15].ToString() + "'," + "'" + row[16].ToString() + "'," + "'" + row[17].ToString() + "'"; как вот это оптимизировать но основным вопросом остается: не зная структуры excel данных загружать их в excel, а по поводу накопления не пойми каких таблиц, то ведь можно использовать в названии одну таблицу вначале ее дропать и все и не будет кучи разных таблиц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2010, 14:58 |
|
||
|
Экспорт данных из Excel в таблицу базы данных
|
|||
|---|---|---|---|
|
#18+
dmitriy22, Вы не ответили на вопрос: "Какой процесс Вы пытаетесь автоматизировать?" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2010, 15:08 |
|
||
|
Экспорт данных из Excel в таблицу базы данных
|
|||
|---|---|---|---|
|
#18+
Курдль, процесс загрузки данных на sql ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2010, 15:13 |
|
||
|
Экспорт данных из Excel в таблицу базы данных
|
|||
|---|---|---|---|
|
#18+
dmitriy22, Каких данных? Куда загрузку? SQL - это Structured Query Language Вас сами данные попросили их загрузить? Ведь кто-то Вам задачу поставил? Какую программу надо сделать? Напишите хоть в произвольном виде: 1. Оператор выбирает excell-файл 2. Нажимает кн. "сохранить в БД" 3. Получает уведомление. ... 4. Аудитор открывает форму доступа к БД. 5. Выбирает название сущности 6. Видит перед собой данные, экспортированные оператором из excell-файла. 7. ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2010, 15:31 |
|
||
|
Экспорт данных из Excel в таблицу базы данных
|
|||
|---|---|---|---|
|
#18+
вроде разобрался с проблемой при помощи цикла и класс stringBuilder, если кому интересно, то могу кинуть код но ту при выгрузке данных одна непонятная штука происходит и я никак не пойму в чем проблема : вот код выгрузки Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. когда я при помощи odbc закачиваю данные из excel в datatable, то закачиваются разные данные: 1.случай: если у меня в excel такие данные : Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. 2.случай: если у меня в excel такие данные : Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. почему так происходит, в первом случае не выгружаются цифры ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2010, 14:32 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=36799711&tid=1351127]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 336ms |

| 0 / 0 |
