powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Копирование через буфер в excel
3 сообщений из 28, страница 2 из 2
Копирование через буфер в excel
    #32698105
T0lik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Во это наверно тебе подойдёт
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
SELECT Table
DIMENSION laArray2(Y)
FOR lnCount =  1  TO X
FOR lnCOunt1=  1  TO Y 
	laArray2(lnCount1)= laArray(lnCount,lnCount1)
ENDFOR
 GATHER FROM laArray2 FIELDS field1,field2
 SKIP
ENDFOR
...
Рейтинг: 0 / 0
Копирование через буфер в excel
    #32698137
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select t1
nn=recno()
insert before nn
gather from array
...
Рейтинг: 0 / 0
Копирование через буфер в excel
    #32700326
akrisiun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
Vot moij kod (sorry for lattin)  :

* Simple import from XLS via clipboard buffer 

IF VERSION( 5 ) <  800  
   ERROR "Need VFP8  for ALINES , INSERT  INTO  ( )   SELECT ... statments "
   RETURN .F.
ENDIF

CREATE CURSOR cFromXls( Str M ) 

LOCAL lnI, lnCnt
lnCnt =ALINES( aBuff, GetClipData() ) 


* INSERT INTO cFromXls FROM ARRAY aBuff  - not works - only single row inserted :( 
 FOR lnI =  1  TO lnCnt 
   INSERT INTO cFromXls ( STR ) VALUES ( aBuff[ lnI ] ) 
 ENDFOR    

CREATE CURSOR cColumns( Str M, Col1 C( 20 ), Col2 C( 20 ), Col3 C( 20 ) )

#DEFINE PARSECHAR CHR( 9 ) 

INSERT INTO cColumns( Str, Col1, col2, col3 ) ;
  SELECT Str, STREXTRACT( Str, "", PARSECHAR ) ;
    , STREXTRACT( Str, PARSECHAR, PARSECHAR  ) ;
    , STREXTRACT( Str, PARSECHAR , PARSECHAR,  1  ) ;
   FROM cFromXLs  


* ClipF.prg file : Clipboard functions 

*####################################################################################
FUNCTION GetClipData          
 LOCAL loClip
 loClip = NEWOBJECT( "ClipboardObj" )
 RETURN loClip.GetClipData() 

*####################################################################################
FUNCTION SetClipData
 LPARAMETERS lcText
 *LOCAL loClip
 *loClip = NEWOBJECT( "ClipboardObj" )
 *RETURN loClip.SetClipData( lcText )      &&- busz DIB formatu
 _CLIPTEXT = lcText 
RETURN .T.  


*####################################################################################
**************************************************
DEFINE CLASS ClipboardObj AS Custom 
*####################################################################################

#UNDEFINE CF_TEXT           
#UNDEFINE CF_OEMTEXT        
#UNDEFINE CF_UNICODETEXT    
#UNDEFINE CFSTR_OLEVARIANTARRAY
#UNDEFINE CFSTR_OLEVARIANT   

#DEFINE CF_TEXT             1 
#DEFINE CF_OEMTEXT          7 
#DEFINE CF_UNICODETEXT     13 
#DEFINE CFSTR_OLEVARIANTARRAY "OLE Variant Array"
#DEFINE CFSTR_OLEVARIANT      "OLE Variant"
#DEFINE GMEM_DDESHARE  0x2000

 #DEFINE MAXSTRSIZE       0xFFF0    &&  = 65520 

 pClipMemory = .NULL.
 hClipMemory = .NULL.
 nMaxSize    = MAXSTRSIZE
 String = ''
 nFormat = CF_TEXT
 nRetVal   =  0 
 cErrorStr = ""
 
 FUNCTION Init 
   This.Declare() 
   
*####################################################################################
 FUNCTION Declare
     * -- DECLARE Windows API functions for this module 
     DECLARE INTEGER OpenClipboard    IN user32 INTEGER
     DECLARE INTEGER CloseClipboard   IN user32
     DECLARE INTEGER GetClipboardData IN user32 INTEGER
     DECLARE INTEGER SetClipboardData IN user32 INTEGER, INTEGER 
     DECLARE INTEGER GlobalAlloc      IN kernel32 INTEGER, INTEGER
     DECLARE INTEGER GlobalLock       IN kernel32 INTEGER
     DECLARE INTEGER GlobalUnlock     IN kernel32 INTEGER
     DECLARE INTEGER lstrcpyn IN kernel32  ;
             STRING @ lpStrTarget,  INTEGER  lpStrSource, INTEGER iMaxLength 
     DECLARE INTEGER lstrcpyn IN kernel32  AS lstrcpyn2 ;
             INTEGER  lpStrTarget,  STRING @ lpStrSource, INTEGER iMaxLength 
     DECLARE INTEGER GlobalSize       IN kernel32 INTEGER, INTEGER 
     DECLARE INTEGER IsClipboardFormatAvailable  IN user32 INTEGER

*####################################################################################
 FUNCTION GetString
   LPARAMETERS tcStr 
   WITH This 
      LOCAL lcString, lnRetVal 
      lcString = "" 
      * -- Lock clipboard memory so we can reference 
      * -- the actual data string 
      .pClipMemory = GlobalLock( .hClipMemory )
      * -- Copy string from clipboard to local variable 
      IF NOT ISNULL( .pClipMemory )
           lcString = SPACE( .nMaxSize ) + " "
           lnRetVal = lstrcpyn( @lcString, .pClipMemory, .nMaxSize -  1  )
           lnRetVal = GlobalUnlock( .hClipMemory )
           .hClipMemory = .NULL.
           
           * -- peel off the null terminating character. 
           lcString = SUBSTR( lcString,  1  ;
                              , AT( CHR( 0 ), lcString ) -  1  )
           RETURN lcString
      ENDIF
      RETURN ""       
   ENDWITH    

*####################################################################################
 FUNCTION GetClipData 
   WITH This 
       * -- Check to see if there is any text available for pasting 
       IF IsClipboardFormatAvailable( CF_TEXT ) <>  1 
          .cErrorStr = "No text available in the clipboard right now."
         RETURN ""
       ENDIF
       * -- Try to open the clipboard 
       IF OpenClipboard( 0 ) =  0 
          .cErrorStr = "Could not open the Clipboard. " ;
                     + "Another application may have it open"
           RETURN ""
       ENDIF
       LOCAL lcString 
       lcString = ""
       * -- obtain the handle to the global memory 
       * -- block that is referencing the text 
       .hClipMemory = GetClipboardData( CF_TEXT )
       IF ISNULL( .hClipMemory )
          .cErrorStr = "Could not allocate memory"
       ELSE
          lcString = .GetString( lcString ) 
          * -- Close the clipboard and return 
       ENDIF 
       .nRetVal = CloseClipboard()
       RETURN( lcString )
     ENDWITH  

*####################################################################################
 FUNCTION PutString
   LPARAMETERS tcString 
   WITH This 
      * -- Lock clipboard memory so we can reference 
      * -- the actual data string 
      lcString  = ( tcString + CHR( 0 ) )
      .nFormat  = CF_TEXT 
      * CF_OEMTEXT    CF_UNICODETEXT   CFSTR_OLEVARIANT      

      .nMaxSize  = LEN( lcString ) -  1  

      .pClipMemory = GlobalAlloc( GMEM_DDESHARE, .nMaxSize +  1  )
      * -- Copy string from clipboard to local variable 
      IF NOT ISNULL( .pClipMemory )
           .hClipMemory = GlobalLock( .pClipMemory )
           lnRetVal = lstrcpyn2( .pClipMemory, @lcString, .nMaxSize )
           lnRetVal = GlobalUnlock( .hClipMemory )

           lcString = SPACE( .nMaxSize ) + " "
           lnRetVal = GlobalUnlock( .hClipMemory )

           .hClipMemory = .NULL. 
           * -- peel off the null terminating character. 
           RETURN .T.
      ENDIF
      RETURN .T. 
   ENDWITH    

*####################################################################################
  FUNCTION SetClipData 
    LPARAMETERS lcString 
     
     WITH This  
       .nRetVal =  0 
       IF OpenClipboard( 0 ) =  0 
          .cErrorStr = "Could not open the Clipboard. " ;
                     + "Another application may have it open"
          RETURN .nRetVal 
       ENDIF
       .pClipMemory = .NULL.
       IF ! .PutString( lcString ) 
           .cErrorStr = "Could not allocate memory"
           SetClipboardData( CF_TEXT,  0  ) 
       ELSE  
          IF ISNULL( .pClipMemory )  
             .cErrorStr = "Could not allocate memory"
          ELSE
             * TODO: convert OEMTEXT to widechar, unicode 
             *  alia : SetClipboardData( CF_TEXT,  .pClipMemory )

             SetClipboardData( CF_TEXT,  0  ) 
             SetClipboardData( .nFormat, .pClipMemory )
            .nRetVal =  1 
          ENDIF
       ENDIF 
       CloseClipboard()
       RETURN .nRetVal 
     ENDWITH 
     
ENDDEFINE 

...
Рейтинг: 0 / 0
3 сообщений из 28, страница 2 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Копирование через буфер в excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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