powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Получить excel ячейки в буфере обмена
14 сообщений из 14, страница 1 из 1
Получить excel ячейки в буфере обмена
    #39841407
JavaStudent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Научился управлять данными в буфере обмена. Кладем что хочешь, получаем, что кладем. Проблем нет, когда кладем, можно xml положить, можно текст с разделителями. Ты положил, ты взял. А вот если кладет другое приложение, например Excel. То там только разделители строк, а вот разделители столбов 2 пробела. Вот код, как я забираю буфер:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
Private Function GetClipboard() As String
On Error GoTo dalse
Dim a As Object
Set a = GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
a.GetFromClipboard
GetClipboard = a.GetText(1)
Set a = Nothing
dalse:
End Function



Вопрос, как достучаться в объекте (буфер обмена) до ячейки A3, если в буфере 5 столбиков?
...
Рейтинг: 0 / 0
Получить excel ячейки в буфере обмена
    #39841418
JavaStudent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
{1C3B4210-F441-11CE-B9EA-00AA006B1A69}: CLSID Microsoft Forms 2.1 DataObject
...
Рейтинг: 0 / 0
Получить excel ячейки в буфере обмена
    #39841467
JavaStudent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если копировать и вставить через эту функцию
A1(тут 2 точки)B1(тут символы новой строки)
A2(тут 2 точки)B2(тут символы новой строки)

Если копировать и вставить в блокнот
A1(тут стрелка) B1(тут символы новой строки)
A2(тут стрелка) B2(тут символы новой строки)

Попробую узнать номер кода стрелки и применить Split для столбиков в строке и самих строк.
А вот как получить ячейку A2, пока не соображу как из объекта, сделать Excel объект
...
Рейтинг: 0 / 0
Получить excel ячейки в буфере обмена
    #39841495
JavaStudent, может объясните свою задачу? Зачем вам буфер обмена, если Excel ваш. Ведь значение ячейки можно получить другими способами.

Если по вопросу, то v = SplitСтолбцов(SplitСтрок(1))(0)
...
Рейтинг: 0 / 0
Получить excel ячейки в буфере обмена
    #39841553
JavaStudent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кривцов Анатолий, Я копирую в Excel, а вставляю в базу SQL. Хочется проверить и получить значения ячеек. В вашем ответе не разобрался. Получаю значения ячеек в строке, между ячейками символ 9 (символ горизонтальной табуляции). В конце строки перенос строки. Хочется понять, что это Excel, что там есть ячейка A1 и тащить уже в базу.
...
Рейтинг: 0 / 0
Получить excel ячейки в буфере обмена
    #39841557
JavaStudent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кривцов Анатолий, Или, например, ячейка красная, зеленый фон и.т.д. В зависимости от это пляшем в ту или другую сторону.
...
Рейтинг: 0 / 0
Получить excel ячейки в буфере обмена
    #39844018
JavaStudent,

В как воспользоваться вашей функцией?
Например, копирую столбец excel и его нужно обработать в цикле. Не пойму, как получить построчно данные.
...
Рейтинг: 0 / 0
Получить excel ячейки в буфере обмена
    #39846711
ЦЦа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
JavaStudentКривцов Анатолий, Я копирую в Excel, а вставляю в базу SQL. Хочется проверить и получить значения ячеек. В вашем ответе не разобрался. Получаю значения ячеек в строке, между ячейками символ 9 (символ горизонтальной табуляции). В конце строки перенос строки. Хочется понять, что это Excel, что там есть ячейка A1 и тащить уже в базу.JavaStudentКривцов Анатолий, Или, например, ячейка красная, зеленый фон и.т.д. В зависимости от это пляшем в ту или другую сторону.Тогда бросай ходить в коротких штанишках обрезанного вусмерть MSForms.DataObject и надевай брючки подлиннее. Вот здесь лежит библиотека типов, в которой описаны (с адаптацией под VB6/VBA) множество системных API, включая интерфейс IDataObject. Описание здесь (для C/C++). Понадобятся методы EnumFormatEtc, GetData, может быть QueryGetData. Понадобится почитать документацию по ним и на несколько слоёв вглубь по ссылкам. Чтобы срезать угол, можно найти утилиту, позволяющую просматривать, в каких форматах лежат данные в буфере обмена. А далее понадобится немало reverse engineering-а (т. е. понадобится терпение), чтобы из этой кучи форматов выгрести что-то, что можно разобрать до нужной степени детализации.

Удачи, Студент!
...
Рейтинг: 0 / 0
Получить excel ячейки в буфере обмена
    #39850864
JavaStudent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Архимедофф, рисуй кнопку, вешай на нее код, что сверху. Получи строку из буфера и разбирай ее. Посмотри функцию Split.
...
Рейтинг: 0 / 0
Получить excel ячейки в буфере обмена
    #39850865
JavaStudent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЦЦа, не в ту степь. Я сначала Microsoft Forms 2.1 DataObject поковыряю. Пока времени нет. Разобрал пока через разделители. Если разделителей (два символа с кодом 9) нет, значит не Excel. Но хочется все-таки объект Excel получить.
...
Рейтинг: 0 / 0
Получить excel ячейки в буфере обмена
    #39850870
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JavaStudentНаучился управлять данными в буфере обмена. Кладем что хочешь, получаем, что кладем. Проблем нет, когда кладем, можно xml положить, можно текст с разделителями. Ты положил, ты взял. А вот если кладет другое приложение, например Excel. То там только разделители строк, а вот разделители столбов 2 пробела. Вот код, как я забираю буфер:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
Private Function GetClipboard() As String
On Error GoTo dalse
Dim a As Object
Set a = GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
a.GetFromClipboard
GetClipboard = a.GetText(1)
Set a = Nothing
dalse:
End Function



Вопрос, как достучаться в объекте (буфер обмена) до ячейки A3, если в буфере 5 столбиков?

Показать как писать запрос SQL к файлу Excel, а потом сразу отправить на SQL server? Без всякого буфера.
...
Рейтинг: 0 / 0
Получить excel ячейки в буфере обмена
    #39851290
ЦЦа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
JavaStudentЦЦа, не в ту степь.Хорошее начало альтернативной истории...JavaStudentЯ сначала Microsoft Forms 2.1 DataObject поковыряю. Пока времени нет. Разобрал пока через разделители. Если разделителей (два символа с кодом 9) нет, значит не Excel. Но хочется все-таки объект Excel получить....но у неё нет шанса случиЦЦа. Предлагаю помедитировать над скриншотом и возможности реализации подобного с помощью Microsoft Forms 2.x.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Получить excel ячейки в буфере обмена
    #40077330
JavaStudent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тогда я сделал так, проверил, что там текст.

declare tr,td,i%,j%

tr=split(StrMemory , chr(13)&chr(10)) получил массив строк, где chr(13)&chr(10) символы раздела строк

for i=0 to ubound(tr)
td=split(tr(i),chr(9)) -- получаем массив столбиков, chr(9) символ раздела столбиков
debug.print tr(i)
for j=0 to ubound(td)
debug.print td(j)
next
next
...
Рейтинг: 0 / 0
Получить excel ячейки в буфере обмена
    #40077344
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JavaStudent,
А тривиальный экспорт/импорт, не?
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Получить excel ячейки в буфере обмена
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]