Copy from DataTable
#1
Отправлено 10 ноября 2009 - 16:00
У меня возникла такая проблема: Нужно скопировать несколько ячеек из Excel в буфер, чтобы потом вставить в таблицу в приложении при помощи кнопки Paste From Excel в самом приложении.
Я скопировал эти ячейки в DataTable. Можно ли как то скопировать эти ячейки в буфер из DataTable(повторить ручное действие: DataTable sheet -> mouse right click->Edit-> Copy).
Заранее спасибо за ответ.
#2
Отправлено 12 ноября 2009 - 13:37
Всем добрый вечер!
У меня возникла такая проблема: Нужно скопировать несколько ячеек из Excel в буфер, чтобы потом вставить в таблицу в приложении при помощи кнопки Paste From Excel в самом приложении.
Я скопировал эти ячейки в DataTable. Можно ли как то скопировать эти ячейки в буфер из DataTable(повторить ручное действие: DataTable sheet -> mouse right click->Edit-> Copy).
Заранее спасибо за ответ.
Скопировать ячейки нужно вручную? если да, то не вижу проблем :)
Если надо программно, то что означает "Я скопировал эти ячейки в DataTable" - скопировали вручную при разработке скрипта? или скопировали в run-time через буфер обмена?
Второй вопрос - кнопка "Paste From Excel" в тестируемом приложении как работает: копирует текст из буфера? подключается к открытому документу excel и копирует выделенный текст? ваш вариант?
Третий вопрос - пробовали реализовать эту операцию через record&play? Если да, то какой результат?
Конечный ответ, который вы надеетесь получись, будет зависеть от ответов на вопросы выше.
Вопрос сформулирован довольно расплавчато, попробуйте прочитать и представить, что вы ничего не знаете о задаче - понятно то, что написано в вопросе? ;)
#3
Отправлено 12 ноября 2009 - 16:27
Через DataTable скорее всего не получится, потому что QTP будет задисейблен на время выполнения скрипта и из него скопировать не получится.Всем добрый вечер!
У меня возникла такая проблема: Нужно скопировать несколько ячеек из Excel в буфер, чтобы потом вставить в таблицу в приложении при помощи кнопки Paste From Excel в самом приложении.
Я скопировал эти ячейки в DataTable. Можно ли как то скопировать эти ячейки в буфер из DataTable(повторить ручное действие: DataTable sheet -> mouse right click->Edit-> Copy).
Заранее спасибо за ответ.
К тому же загнать данные в буфер обмена много проще из экселя через COM-объект:
Set xl = CreateObject(, "Excel.Application") 'запускаем эксельxl.visible = true 'это, если хочется видеть документ, открытый в экселеDim filepathfilepath = "ПУТЬ_К_ФАЙЛУ"Set wb = xl.workbooks.open(filepath)Dim sheetnamesheetname = "ИМЯ_ЛИСТА_С_ДАННЫМИ"Set ws = wb.sheets(sheetname) 'также можно использовать индекс листа или метод ActiveSheet , который обращается к текущему листуDim start_cell, end_cell, range_to_copySet start_cell = ws.cells(row_id, col_id)Set end_cell = ws.cells(row_id, col_id)Set range_to_copy = ws.range(start_cell, end_cell) 'задаем область для копированияrange_to_copy.Copy 'копируем область в буфер обмена.'ЗДЕСЬ ДОЛЖЕН БЫТЬ КОД ПО ВСТАВКЕ ДАННЫХ В ВАШЕ ПРИЛОЖЕНИЕwb.close(False) 'закрываем документ. Если закрыть раньше, чем вставить, то буфер обмена очистится. Это такая фича экселя.xl.Quit 'завершаем процесс excel
SQL для тестировщиков
Тренинги по HP QTP и автоматизации тестирования
Если минарет, значит выше всех (с)
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных