Приветствую!
Есть Exel-файл (формат 97), требуется прочитать в HiAsm данные из 4 полей:
ProdNameWithParams (название продукта)
OrdDisplayOrderNumb (номер заказа)
OrdPersonFax (номер факса)
OrdPersonEMail (E-mail)
Ранее не приходилось сталкиваться с подобным, покурив примеры добился вывода 3 параметров из 4 необходимых "OrdDisplayOrderNum" читать почему-то не хочет.
Соответственно главная просьба - подсказать как считать номер заказа.
Плюс ко всему я считывал данные такой строкой:
SELECT * FROM `111`.`Лист2$`
и получая данные, далее искал нужное с помощью BlockFind, что по-моему неправильно... но как считывать только нужные поля пока не понял.
Буду весьма благодарен за подсказку.
В архиве (10кб) сам екселевский файл и схема *.sha, с тем, чего мне удалось добиться.
http://forum.hiasm.com/forum_serv.php?q=56&id=2187
Этот топик читают: Гость
Ответов: 294
Рейтинг: 64
|
|||
карма: 0 |
|
Ответов: 1891
Рейтинг: 110
|
|||
Quest, приложенный Вами файл XLS не является базай данных, так что возможно, что не все данные попадут в результат запроса
Из тех данных, что подадают в запрос можно выбрать так: ИЗДЕЛИЕ: SELECT F7 FROM `111`.`Лист2$` WHERE `Паспорт изделия` = 'Изделие' Заказ №: не выводится, попробуй поэкспериментируй с форматированием, т.к. номер заказ не попадает в выводимую таблицу ФАКС: SELECT F21 FROM `111`.`Лист2$` WHERE F18='Факс.' E-Mail: SELECT F39 FROM `111`.`Лист2$` WHERE F33 = 'E-Mail' |
|||
карма: 0 |
| ||
Голосовали: | Quest |
Ответов: 294
Рейтинг: 64
|
|||
Alexbootch, спасибо.
К сожалению все равно не понял откуда берутся значения (F7, F21 и т. д.), но может на старости лет и дойдет. Метод: SELECT F21 FROM `111`.`Лист2$` WHERE F18='Факс.' "цепляет" после номера еще ".0" как и при общей выборке (SELECT * FROM `111`.`Лист2$`), придется дополнительно отсекать, но не проблема. А вот с номером заказа - конечно хреново, что не вытаскивает... Alexbootch писал(а): не выводится, попробуй поэкспериментируй с форматированиемФайлы генерирует программа к которой у меня нет доступа (в плане изменить что-либо в формировании *.xls) Или имеется ввиду действия с уже готовым файлом? ---- Или может есть принципиально иной способ прочитать таки этот номер заказа? |
|||
карма: 0 |
|
Ответов: 1891
Рейтинг: 110
|
|||
Quest писал(а): К сожалению все равно не понял откуда берутся значения (F7, F21 и т. д.), но может на старости лет и дойдет.Загрузи результат запроса SELECT * FROM `111`.`Лист2$` в таблицу и все сам увидишь. Quest писал(а): Файлы генерирует программа к которой у меня нет доступа (в плане изменить что-либо в формировании *.xls)Или имеется ввиду действия с уже готовым файлом? А зачем именно таким способом нужно доставать данные из файла, не являющегося базой данных? Не проще использовать скрипты, например VBA? |
|||
карма: 0 |
|
Ответов: 294
Рейтинг: 64
|
|||
Alexbootch писал(а): Загрузи результат запроса в таблицу и все сам увидишьУзрел, спасибо. Alexbootch писал(а): Не проще использовать скрипты, например VBA?К сожалению и в этом не силен, так что лично для меня пожалуй что не проще. |
|||
карма: 0 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 2 раз(а), последний 2025-01-10 09:33:38 |
|||
карма: 0 |
|
Ответов: 294
Рейтинг: 64
|
|||
z20-14.opera-mini.net писал(а): 111.xls открывается в WinRARПохоже побочный эффект от пересохранения в 2007-ом Exel-е, хотя и под старую версию. Внимательно изучив содержимое "архива" не нашел ничего похожего на искомую информацию. Но даже если бы и нашел - не вариант, оригинальный файл не "разархивируется". Прикладываю оригинал (5кб) (в нем отсутствуют интересующие поля, кроме наименования, поэтому в первом посте пересохраненный файл для наглядности). http://forum.hiasm.com/forum_serv.php?q=56&id=2188 |
|||
карма: 0 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Quest, файлы xls старой версии -- это структуированное хранилище
|
|||
карма: 22 |
|
Ответов: 294
Рейтинг: 64
|
|||
nesco писал(а): ...это структуированное хранилищеВек живи - век учись... Но, черт меня подери, не визуально, не экпортировав в *.txt и поиском - я не нашел информации из полей. (добавлял UTF8>Ansi для кириллицы, но тишина) ---- может это неправильные пчелы и они делают неправильные xls..)) В том смысле что конкретный файл "криво сделан"? Читаются же 3 поля, а вот номер - ни в какую.. |
|||
карма: 0 |
|
Ответов: 8930
Рейтинг: 823
|
|||
Quest, целая куча примеров на форуме, вот один из них:
|
|||
карма: 19 |
| ||
файлы: 1 | shop.sha [5KB] [164] |
Ответов: 1891
Рейтинг: 110
|
|||
карма: 0 |
| ||
файлы: 1 | code_22973.txt [1.9KB] [207] |
Ответов: 294
Рейтинг: 64
|
|||
Леонид писал(а): Quest, целая куча примеров на форумеЯ конечно пробовал искать, читать кучу страниц... но как видно из моих сообщений выше я ТУПО неправильно писал: Exel вместо Excel )) Наверное поэтому у меня и возникли проблемы с поиском нужного). Так что спасибо, за пример! Alexbootch писал(а): Quest, вот более простой пример для начального пониманияAlexbootch Тоже огромное спасибо! Ситуация усугублялась тем, что для работы скриптов необходим установленный в системе Excel, коего у меня нет, поставил на виртуалку для проверки. А по примеру из первого поста работает без Excel_я. Плюс, пока искалось решение, разработчик программы генерирующей отчеты сжалился и согласился выгружать поля в *.txt. Но все-равно спасибо всем откликнувшемся - подчерпнул для себя много полезного! [flood]Из-за лимита "оплюсовать" всех не могу[/flood] |
|||
карма: 0 |
|
Ответов: 8930
Рейтинг: 823
|
|||
Quest, такое использование таблиц Excel "разработчика" не украшает, хотя и распространено в финансовых кругах. Word тоже открывает такие файлы, но для него нужно более кропотливо и точно устанавливать всякие границы, года три-четыре назад тоже пришлось делать расшифровку этих "портянок" -- в HiAsm-е открывал как текст и парсил нужные данные.
|
|||
карма: 19 |
|
Ответов: 1891
Рейтинг: 110
|
|||
Леонид писал(а): Quest, такое использование таблиц Excel "разработчика" не украшает, хотя и распространено в финансовых кругах. Word тоже открывает такие файлы, но для него нужно более кропотливо и точно устанавливать всякие границы, года три-четыре назад тоже пришлось делать расшифровку этих "портянок" -- в HiAsm-е открывал как текст и парсил нужные данные.Самый оптимальный вариант - это использовать для составления отчетов файлы формата RTF, их можно парсить как текстовый файл и возможностей у данного формата для отчетов за глаза. Использовать VBA тоже можно, но в отличии от формата RTF, не кто не ручается за обратную совместимость в разных версиях Excel. |
|||
карма: 0 |
|
14