Перейти к содержимому

Фотография

Copy from DataTable


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2

#1 bOOmer

bOOmer

    Новый участник

  • Members
  • Pip
  • 17 сообщений
  • ФИО:Лукогорский Евгений Борисович

Отправлено 10 ноября 2009 - 16:00

Всем добрый вечер!

У меня возникла такая проблема: Нужно скопировать несколько ячеек из Excel в буфер, чтобы потом вставить в таблицу в приложении при помощи кнопки Paste From Excel в самом приложении.

Я скопировал эти ячейки в DataTable. Можно ли как то скопировать эти ячейки в буфер из DataTable(повторить ручное действие: DataTable sheet -> mouse right click->Edit-> Copy).

Заранее спасибо за ответ.
  • 0

#2 gralex

gralex

    Новый участник

  • Members
  • Pip
  • 52 сообщений
  • ФИО:Груба Алексей

Отправлено 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? Если да, то какой результат?

Конечный ответ, который вы надеетесь получись, будет зависеть от ответов на вопросы выше.

Вопрос сформулирован довольно расплавчато, попробуйте прочитать и представить, что вы ничего не знаете о задаче - понятно то, что написано в вопросе? ;)
  • 0

#3 ch_ip

ch_ip

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 097 сообщений
  • ФИО:Павел Абдюшев
  • Город:Москва


Отправлено 12 ноября 2009 - 16:27

Всем добрый вечер!

У меня возникла такая проблема: Нужно скопировать несколько ячеек из Excel в буфер, чтобы потом вставить в таблицу в приложении при помощи кнопки Paste From Excel в самом приложении.

Я скопировал эти ячейки в DataTable. Можно ли как то скопировать эти ячейки в буфер из DataTable(повторить ручное действие: DataTable sheet -> mouse right click->Edit-> Copy).

Заранее спасибо за ответ.

Через DataTable скорее всего не получится, потому что QTP будет задисейблен на время выполнения скрипта и из него скопировать не получится.
К тому же загнать данные в буфер обмена много проще из экселя через 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

  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных