Сравнить два файла
#1
Отправлено 27 февраля 2008 - 07:45
при помощи silktest, нужно чтоб совпадало все, за исключением даты отчета, при несовпадении записать в лог. Возможно такое сделать с помощью ilktest?.
Заранее благодарен.
#2
Отправлено 27 февраля 2008 - 09:50
СилкТест работает с Экселем как с базой данных, таблицы которой соответствуют листам, поля таблицы именуются в первой строке листа, а данные идут в строках под ними. Если ваши файлы удовлетворяют данному формату, то тогда задача сводится к считыванию списка записей и поэлементному сравнению.Доброго времени суток. У меня возникла следующая проблема: необходимо сравнить два excel-ских файла с расширением xls. Есть эталон, второй файл формируется
при помощи silktest, нужно чтоб совпадало все, за исключением даты отчета, при несовпадении записать в лог. Возможно такое сделать с помощью ilktest?.
Заранее благодарен.
#3
Отправлено 27 февраля 2008 - 11:29
но как это все считать, пытался так while (DB_FetchNext(hsql,s1) ) выдает ошибку Error: (HY000) [Microsoft][Драйвер ODBC Excel] Переполнение числового поля.
Как быть в этом случае? Файл Excel я прикрепил.
Прикрепленные файлы
#4
Отправлено 27 февраля 2008 - 11:49
#5
Отправлено 27 февраля 2008 - 12:33
Не, стоп. Из такой таблицы данные не извлекаются. Вы уточняйте, что этот файл сгенерен не силком, а во время выполнения скрипта. Силк работает с Экселем через ОДБС как с базой данных, то есть никаких объединений ячеек не воспринимает. В вашем случае тогда подумайте в направлении JScript программы, которая извлечет ячейки обеих таблиц (и эталона и сгенеренной), а затем уже сверит. И такой скрипт уже запускать из командной строки.Дело в том что в таблицах некоторые ячейки объединены, а именно самая верхняя строчка есть объединение нескольких ячеек. Выборку делаю типа select * from [sheet1$]
но как это все считать, пытался так while (DB_FetchNext(hsql,s1) ) выдает ошибку Error: (HY000) [Microsoft][Драйвер ODBC Excel] Переполнение числового поля.
Как быть в этом случае? Файл Excel я прикрепил.
Запомните, Силк работает с Эксель только как с базой данных. Не более.
#6
Отправлено 28 февраля 2008 - 03:53
#7
Отправлено 23 апреля 2008 - 12:22
Ясна, я думал, точнее надеялся, что можно все с же средствами силка обойтись, в любом случае спасибо за совет.
Намного реальней написать скриптик на вбс, и его запускать с силка... А этот вбс уже может работать с объектом екселя.
Если поподробней, могу рассказать.
#8
Отправлено 24 апреля 2008 - 09:29
Не гремите ключами от тайн! (С) Ежи ЛецЯсна, я думал, точнее надеялся, что можно все с же средствами силка обойтись, в любом случае спасибо за совет.
Намного реальней написать скриптик на вбс, и его запускать с силка... А этот вбс уже может работать с объектом екселя.
Если поподробней, могу рассказать.
Рассказывайте. Покажите хотя бы простейший пример : открытие файла, обращение к заданной ячейке заданного листа, изменение атрибутов, выход.
Будет очень познавательно.
PS: А еще - попробуйте, сработает ли Ваше предложение, когда не установлен Офис/Ворд. Ну или установлен OpenOffice
#9
Отправлено 24 апреля 2008 - 11:01
Рассказывайте. Покажите хотя бы простейший пример : открытие файла, обращение к заданной ячейке заданного листа, изменение атрибутов, выход.
Будет очень познавательно.
PS: А еще - попробуйте, сработает ли Ваше предложение, когда не установлен Офис/Ворд. Ну или установлен OpenOffice
Добрый день.
Я приаттачил файл ExcelOLE.txt. Переименуйте его в ExcelOLE.t, откройте в Силке и запустите функцию main (F9).
Эта функция создаст файл C:\testole.xls и запишет в ячейку B2 текст "Dmitry was here".
Реализовано с помощью JScript.
Это просто для интереса.
Работает так: в той же папке, где находится файл скрипта, создается временный файл excel_ole_tmp.js, затем этот файл запускается и удаляется. Если интересно посмотреть на созданный файл - просто закомментируйте строку SYS_RemoveFile(sFile).
Через OLE можно делать с экселевскими файлами практически все, что угодно: работать с ячейками, листами, диаграммами, менять аттрибуты ячеек и т.д.
Вообще-то этот способ не очень хорош, так как используется дополнительная утилита wscript (хоть она и есть в поставке Windows 2k и выше).
Плюс, в данном примере записывается текст в ячейку, а если потребуется сделать обратное действие (считать текст), то придется создавать временный файл.
Я считаю, что если уж есть подобная необходимость, то лучше написать DLLку с необходимыми функциями.
P.S. vass, проверь, пожалуйста, на компьютере, где нет установленного офиса. Самому интересно, отработает ли, а компьютера без офиса под рукой нету.
Прикрепленные файлы
#10
Отправлено 24 апреля 2008 - 12:09
Вообще-то, если нет ни офиса или ничего подобного ему, то естественно не сработает. И понятно почему. OLE-объекты-то тоже с чем-то поставляются. Но, я думаю, это уже лишнее.P.S. vass, проверь, пожалуйста, на компьютере, где нет установленного офиса. Самому интересно, отработает ли, а компьютера без офиса под рукой нету.
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных