Помогите с буфером обмена

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Артемка
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 05.11.2004 (Пт) 10:31

Помогите с буфером обмена

Сообщение Артемка » 02.12.2004 (Чт) 10:41

Дано: Есть какая-то таблица (Excell) скопированная в буфер
Задача: В Accesse надо в уже существующую таблицу вставить эти записи.
Вопрос: :shock: ПОМОГИТЕ, 4 дня мучаюсь, ничего не помогает.

Заранее благодарен!!!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 02.12.2004 (Чт) 11:26

А почему не вставляется-то? У меня вставляется.
Чё говорит?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Gloom
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 200
Зарегистрирован: 23.11.2004 (Вт) 15:57
Откуда: СПб

Сообщение Gloom » 02.12.2004 (Чт) 11:45

Все приложения msoffice помещают данные в буфер в html формате. Вот пример для Excel
Код: Выделить всё
в буфер скопирован диапазон из шести ячеек -

Date       | Amount  | FAT
01.01.2004 | 12541,5 | 2257,47

Содержимое буфера:

Version:1.0
StartHTML:0000000147
EndHTML:0000002459
StartFragment:0000001849
EndFragment:0000002407
SourceURL:file:///D:/test.xls

<html xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<meta name=ProgId content=Excel.Sheet>
<meta name=Generator content="Microsoft Excel 9">
<link id=Main-File rel=Main-File
href="file:///C:/DOCUME~1/brvtre~1/LOCALS~1/Temp/msoclip1/03/clip.htm">
<link rel=Edit-Time-Data
href="file:///C:/DOCUME~1/brvtre~1/LOCALS~1/Temp/msoclip1/03/clip_editdata.mso">
<link rel=OLE-Object-Data
href="file:///C:/DOCUME~1/brvtre~1/LOCALS~1/Temp/msoclip1/03/clip_oledata.mso">
<style>
<!--table
    {mso-displayed-decimal-separator:"\,";
    mso-displayed-thousand-separator:" ";}
@page
    {mso-footer-data:"&Р";
    margin:.98in .79in .98in .79in;
    mso-header-margin:.5in;
    mso-footer-margin:.5in;}
tr
    {mso-height-source:auto;}
col
    {mso-width-source:auto;}
br
    {mso-data-placement:same-cell;}
td
    {padding-top:1px;
    padding-right:1px;
    padding-left:1px;
    mso-ignore:padding;
    color:windowtext;
    font-size:8.0pt;
    font-weight:400;
    font-style:normal;
    text-decoration:none;
    font-family:Arial, sans-serif;
    mso-font-charset:204;
    mso-number-format:General;
    text-align:general;
    vertical-align:bottom;
    border:none;
    mso-background-source:auto;
    mso-pattern:auto;
    mso-protection:locked visible;
    white-space:nowrap;
    mso-rotate:0;}
.xl19
    {mso-number-format:"Short Date";}
-->
</style>
</head>

<body link=blue vlink="#b38fee">

<table x:str border=0 cellpadding=0 cellspacing=0 width=186 style='border-collapse:
collapse;width:141pt'>
<!--StartFragment-->
<col width=62 span=3 style='mso-width-source:userset;mso-width-alt:2645;
width:47pt'>
<tr height=15 style='height:11.25pt'>
  <td height=15 width=62 style='height:11.25pt;width:47pt'>Date</td>
  <td width=62 style='width:47pt'>Amount</td>
  <td width=62 style='width:47pt'>FAT</td>
</tr>
<tr height=15 style='height:11.25pt'>
  <td height=15 class=xl19 align=right style='height:11.25pt' x:num="37987">01.01.2004</td>
  <td align=right x:num="12541.5">12541,5</td>
  <td align=right x:num="2257.47" x:fmla="=B2/100*18">2257,47</td>
</tr>
<!--EndFragment-->
</table>

</body>

</html>

Данные находятся в html-таблице(между тэгами <table> и </table>). Остаётся только распарсить эти данные(можно использовать библиотеку MSHTML).
Само содержимое буфера получено с помощью WinAPI функции GetClipboardData.

Артемка
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 05.11.2004 (Пт) 10:31

Сообщение Артемка » 02.12.2004 (Чт) 12:02

нп
Последний раз редактировалось Артемка 02.12.2004 (Чт) 12:05, всего редактировалось 1 раз.

Артемка
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 05.11.2004 (Пт) 10:31

Сообщение Артемка » 02.12.2004 (Чт) 12:04

GSerg писал(а):А почему не вставляется-то? У меня вставляется.
Чё говорит?

Я имею ввиду программно, например, в Excelle есть список заказанных номеров запчастей, как его вставить в уже существующую базу заказов (таблицу)

Артемка
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 05.11.2004 (Пт) 10:31

Gloom

Сообщение Артемка » 02.12.2004 (Чт) 12:08

:shock: :shock: :shock: А ни чё попроще нету, а то как-то непонятно, и есче, что такое распарсить???

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 02.12.2004 (Чт) 13:38

HTML - это один из форматов. Там и простой текст есть, и RTF, и метафайл. Проще извлекать данные из простого текста (разделитель полей - табулятор).
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

    TopList