|
|
|
Подключение к Excel- файлу из jscript - если имя листа неизвестно.
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Win7,Excel2003 Пытаюсь подключится к файлу как к источнику данных. Пока я точно указываю название листа- все в порядке: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Но в реальных файлах могут быть и любые названия, и любые листы( в смысле может не быть Sheet(1) , как бы он не назывался). Как на месте Лист2 написать что-то вроде ActiveSheet? Варианты вида Код: javascript 1. 2. предсказуемо не срабатывают. Заранее спасибо за помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2019, 15:33 |
|
||
|
Подключение к Excel- файлу из jscript - если имя листа неизвестно.
|
|||
|---|---|---|---|
|
#18+
IMHO: https://docs.microsoft.com/en-us/sql/ado/reference/ado-api/openschema-method?view=sql-server-2017 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2019, 17:23 |
|
||
|
Подключение к Excel- файлу из jscript - если имя листа неизвестно.
|
|||
|---|---|---|---|
|
#18+
natalitvinenko, на всякий случай, здесь 2 примера, как получить названия листов Excel https://stackoverflow.com/questions/1397158/connect-to-excel-with-ado-dont-know-sheet-names ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2019, 15:01 |
|
||
|
Подключение к Excel- файлу из jscript - если имя листа неизвестно.
|
|||
|---|---|---|---|
|
#18+
SQLPowerUser, проблема ж не в том, что я не могу найти все названия листов. Проблема в том, что я могу использовать файл Экселя только как источник данных. Я не могу в данной ситуации его загрузить, воспользоваться программами, свойствами и чем угодно вообще. Я могу только как вампир - прицепиться, вытащить данные и отвалиться. В реальной ситуации пользования программой я не знаю, какие там будут стоять Excel, какие версии и будут ли стоять вообще. Мой предприятие до войны приложило усилия , чтобы все, что у нас стоит на машинах, было лицензионно по максимуму. В результате у тех, кому не было нужно, стоят продукты типа Libre офиса, чего -то фриварного. Поэтому любая попытка выйти за драйвера, обезпечивающий связь как с базой данных, которые по умолчанию есть или могут быть легко поставлены, чревато тем, что программа просто не сможет работать. Просто сказать: не пашет? да поставь офис,- не получится. Поэтому пока пришла к выводу, что легче убедить юзеров свои данные, у которых шапка, дизайн и т.п, всегда грузить в заранее розданный файл, на второй странице...ну пусть уже на второй... которого будут формулы, раскидывающие данные по правильным столбцам, а вверху будет правильная шапка из одной строки, для поедания как базы данных. Как-так на сейчас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2019, 16:49 |
|
||
|
Подключение к Excel- файлу из jscript - если имя листа неизвестно.
|
|||
|---|---|---|---|
|
#18+
natalitvinenko, очень сомнительный подход использовать excel как морду для заполнения БД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 10:13 |
|
||
|
Подключение к Excel- файлу из jscript - если имя листа неизвестно.
|
|||
|---|---|---|---|
|
#18+
natalitvinenko, .. сделайте в шаблоне файла большую кнопку "Сохранить как Excel 2003 XML" ... в этом формате могут сохранять все версии МС Офиса и Опен-Либре Офиса ... а VB Script может работать с XML ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 11:36 |
|
||
|
Подключение к Excel- файлу из jscript - если имя листа неизвестно.
|
|||
|---|---|---|---|
|
#18+
waszkiewicznatalitvinenko, очень сомнительный подход использовать excel как морду для заполнения БД Но эта мысля - не моя. Дальше - больше. Листочек с формулами отменяется. Дано: дикий файл установленного формата, прям оттуда и читать. В связи с чем сразу начинаю гуглить, как принять как базу данных не целый лист, а кусок листа. Потом, при приеме листа в программу выяснилось, что часть текстовых данных она просто не читает. В самом Эксель , при возможности открыть, это борется формулами вида =""&Лист2222!C7&"" Что делать в программе- не пойму. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2019, 15:42 |
|
||
|
Подключение к Excel- файлу из jscript - если имя листа неизвестно.
|
|||
|---|---|---|---|
|
#18+
Что значит "не читает"? Что за бред, как такое может быть. "Не верю" ( C ) IMHO & AFAIK. Если объяснять аллегориями: Взять старый инструмент - заржавелый молоток с маркой ODBC, им пытаются забивать шурупы. Шурупы входят тяжело, из дерева летят шепки. Кто же виноват? Решать или огранизационно: вместо шурупов использовать гвозди заранее согласованной длины и тольщины. Создать шаблон файла (выложить на скачивание), создать инструкцию по заполнению, если пользователь вместо прямых гвоздей подсовывает гнутые/ржавые гвозьди или шурупы - идет в пешее эротическое путешествие Или взять современное средство: например Java и Apache POI и сделать свою hand-майд модель шуруповерта, приспособленную для шурупов Вашей марки с автодетектированием: шага резьбы, погнутости, ржавости и так далее.... Всего того же самого наверное можно и через ODBC добиться.... но будет это сложнее (в программирование), крайне медленно (во время выполнения) и скорее всего глукавее (зависит от того, из какой части тела растут верхнии конечности) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2019, 16:02 |
|
||
|
Подключение к Excel- файлу из jscript - если имя листа неизвестно.
|
|||
|---|---|---|---|
|
#18+
natalitvinenko, .. а у вас в руках только JScript/VBScript ... ? .. не совсем понятно, что вы называете программой .. если да, и если утвержденный формат файла Excel+2007 (т.е Open Document Format - xlsx), то этот файл можно распаковать архиватором, и получится уже готовый XML, с которым можно работать скриптовым языком текстовыми функциями ... Это, конечно, средневековье, но один раз сделать - потом заработает ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2019, 17:17 |
|
||
|
Подключение к Excel- файлу из jscript - если имя листа неизвестно.
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev, Про "не читает". В Excel периодически возникает такая зараза, такой глюк, когда стоит в ячейке число, которое вдруг перестает пониматься как число или текст, который отказывается быть текстом. Манипуляции с форматом в таком случае бессмысленны- можно сколько угодно тыкать в числовой или текстовый, не взлетит. Лечится для числа это , например. созданием в другой ячейке формулы вида =ЯчейкаХ +0 Ну то есть явно ткнуть Excel мордой- это число, слышишь, это -число! И потом уже манипулировать с ним. Для текста шаманские действия выглядят как &"". При попытке вот такое считать из рекордсета, заполненного данными Excel, оно упорно распознает данные как null. Из одного файла нормально читает, из другого- нет. У меня уже мозги за сегодня поднимаются. Еще ситуация- дочитывает до определенной строки и все. Всю таблицу брать отказывается, останавливается где-то даже не посередине. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2019, 16:52 |
|
||
|
Подключение к Excel- файлу из jscript - если имя листа неизвестно.
|
|||
|---|---|---|---|
|
#18+
natalitvinenkoПро "не читает". В Excel периодически возникает такая зараза, такой глюк, когда стоит в ячейке число, которое вдруг перестает пониматься как число или текст, который отказывается быть текстом... Проблема с форматом в Excel сталкивался, но обычно они объясняются вполне обычными вещами (например кто-то non break space пробел (или другой символ) в числовую ячейку забил, на экране не видно, а ячейка стала текстовая; с датами/страками тоже весело бывает, когда число или строчку вида 20.03 Excel "внезапно" начинает считать 20 марта etc..etc...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2019, 17:48 |
|
||
|
Подключение к Excel- файлу из jscript - если имя листа неизвестно.
|
|||
|---|---|---|---|
|
#18+
jet - не лучшее средство для импорта данных из Excel ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2019, 19:45 |
|
||
|
Подключение к Excel- файлу из jscript - если имя листа неизвестно.
|
|||
|---|---|---|---|
|
#18+
Изопропилjet - не лучшее средство для импорта данных из Excel Зато быстрое. Но самое быстрое, что я видел в своей жизни, и способное переваривать такие эксели, на которых другие решения вешают намертво машину, это продукт от Aspose. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2019, 22:01 |
|
||
|
Подключение к Excel- файлу из jscript - если имя листа неизвестно.
|
|||
|---|---|---|---|
|
#18+
Попыталась применить IMEX=1. IMEX=1 помогает частично:-) В одном столбце все наладилось(а были null), в двух других пишет нули- а там цифири. Код: javascript 1. И дурацкий вопрос. Если название листа с пробелами, как писать запрос? Вот так понятно Код: javascript 1. А если лист называется "Шото и шото"? Варианты Код: javascript 1. 2. 3. не сработали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2019, 16:50 |
|
||
|
Подключение к Excel- файлу из jscript - если имя листа неизвестно.
|
|||
|---|---|---|---|
|
#18+
natalitvinenkoПопыталась применить IMEX=1. IMEX=1 помогает частично:-) В одном столбце все наладилось(а были null), в двух других пишет нули- а там цифири. Нашла решение этой проблемы, вот - https://jingyangli.wordpress.com/2009/02/13/imex1-revisit-and-typeguessrows-setting-change-to-0-watch-for-performance/ Скопирую сюда When we import mixed type data in a column from excel to SQL server, we may have issues with losing some data. We can set IMEX=1 to allow the incoming column allow mixed data types based on the Registry setting ImportMixedTypes to Text. However, there is a default setting for Excel to Guess Data Type of a column, the default value is 8.(The ISAM driver by default looks at the first eight rows and from that sampling determines the datatype.) We can change this value to 0 to force Excel to check all values in the column to choose the data type for the column. Here is the registry setting we need to check: Type Regedit from Run… command: Under entries Hkey_Local_Machine/Software/Microsoft/Jet/4.0/Engines/Excel/TypeGuessRows Hkey_Local_Machine/Software/Microsoft/Jet/4.0/Engines/Excel/ImportMixedTypes Change: TypeGuessRows: 0 —-Check all column values before choosing the appropriate data type.ImportMixedTypes: Text —-import mixed-type columns as text. Connection string: Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\data\Book1.xls;Extended Properties="EXCEL 8.0;IMEX=1;HDR=YES"; –Or: SELECT * FROM OPENROWSET(‘Microsoft.Jet.OLEDB.4.0’, ‘Excel 8.0;IMEX=1;HDR=YES;Database=C:\data\Book1.xls;’, ‘select * from [Sheet1$]’) We are using IMEX=1, the Import Mode, in the connection string to apply the registry setting. PS: The possible settings of IMEX are: 0,1,2. (0 is Export mode 1 is Import mode 2 is Linked mode (full update capabilities)) http://support.microsoft.com/kb/194124 http://support.microsoft.com/kb/189897 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2019, 15:36 |
|
||
|
Подключение к Excel- файлу из jscript - если имя листа неизвестно.
|
|||
|---|---|---|---|
|
#18+
hVosttЗато быстрое.... Не верю ( C ) Нечему там быть быстрым. А если действительно, по бизнесу, в одной колонке может быть "мешанина". Например табличка с группировками, подзаголовками (merge cells) и итогами. Я даже не представляю, как с помощью plain SELECT'а такие данные можно будет разпарсить. natalitvinenkoНашла решение этой проблемы, вот - https://jingyangli.wordpress.com/2009/02/13/imex1-revisit-and-typeguessrows-setting-change-to-0-watch-for-performance/ Скопирую сюда Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2019, 16:41 |
|
||
|
Подключение к Excel- файлу из jscript - если имя листа неизвестно.
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevНе верю ( C ) Нечему там быть быстрым. работа с данными vs работа с DOM деревом. действительно, чему там быть быстрым )) Leonid KudryavtsevА если действительно, по бизнесу требования нужны. а то дойдёт так до того, что "по бизнесу" там могут быть джипеги. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2019, 22:02 |
|
||
|
Подключение к Excel- файлу из jscript - если имя листа неизвестно.
|
|||
|---|---|---|---|
|
#18+
hVostt, Excel 2003, откуда там DOM дерево? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2019, 22:56 |
|
||
|
Подключение к Excel- файлу из jscript - если имя листа неизвестно.
|
|||
|---|---|---|---|
|
#18+
ИзопропилhVostt, Excel 2003, откуда там DOM дерево? точняк я путаю с excel'97 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2019, 23:05 |
|
||
|
Подключение к Excel- файлу из jscript - если имя листа неизвестно.
|
|||
|---|---|---|---|
|
#18+
Продолжаю отвечать на свои вопросы:-) natalitvinenkoИ дурацкий вопрос. Если название листа с пробелами, как писать запрос? Вот так понятно Код: javascript 1. А если лист называется "Шото и шото"? Варианты Код: javascript 1. 2. 3. не сработали. Долго я смеялась и теперь рассказываю как анекдот- вообще никаких ограничителей ставить не надо:-) Код: javascript 1. Все - таки вот этот вариант прошел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2019, 10:05 |
|
||
|
Подключение к Excel- файлу из jscript - если имя листа неизвестно.
|
|||
|---|---|---|---|
|
#18+
natalitvinenkonatalitvinenkoПопыталась применить IMEX=1. IMEX=1 помогает частично:-) В одном столбце все наладилось(а были null), в двух других пишет нули- а там цифири. Нашла решение этой проблемы, вот - https://jingyangli.wordpress.com/2009/02/13/imex1-revisit-and-typeguessrows-setting-change-to-0-watch-for-performance/ Скопирую сюда When we import mixed type data in a column from excel to SQL server, we may have issues with losing some data. We can set IMEX=1 to allow the incoming column allow mixed data types based on the Registry setting ImportMixedTypes to Text. However, there is a default setting for Excel to Guess Data Type of a column, the default value is 8.(The ISAM driver by default looks at the first eight rows and from that sampling determines the datatype.) We can change this value to 0 to force Excel to check all values in the column to choose the data type for the column. ..... http://support.microsoft.com/kb/194124 http://support.microsoft.com/kb/189897 Вдогонку сама себе- вдруг у кого такое будет. Это работает только на файлы xls, на xlsx это не поможет в чистом виде. Я еще дополнительно по реестру полазила и заменила в слове TypeGuessRows 8 на 0, там еще два места, иначе драйвер Microsoft.ACE.OLEDB.12.0 не воспримет изменений и продолжит ограничиваться 8 столбцами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2019, 17:31 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=39775675&tid=1443825]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
151ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 491ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...