|
VFP ·R¥ÎªÌªÀ°Ï ¥»°Q½×°Ï¬° Visual Foxpro ·R¥ÎªÌ¸gÅç¥æ¬yªº¦a¤è, ½Ð¦h¦h§Q¥Î"·j´M"ªº¥\¯à, ¥ý¬d¬Ý¬Ý¦³µL«e¨Ò¥i´`, ¦pªGÁÙ¦³¤£À´ªº¦Aµo°Ý. ³¡¥÷¥DÃD¦³ªþ¥[ÀÉ®×, ¶·¥ýµù¥U¦¨¬°ªÀ°Ï©~¥Á¤~¥i¥H¤U¸ü.
|
¤W¤@½g¥DÃD :: ¤U¤@½g¥DÃD |
µoªí¤H |
¤º®e |
Ruey
µù¥U®É¶¡: 2003-03-12 ¤å³¹: 1698 ¨Ó¦Û: tunglo
²Ä 1 ¼Ó
|
µoªí©ó: ¬P´Á¤é ¤¤ë 04, 2003 3:17 pm ¤å³¹¥DÃD: VFP & EXCEL (Âà¶K) |
|
|
VFP¤¤§Q¥ÎEXCEL»s§@¸ê®Æ³øªí
¡@¡@µ§ªÌ¦b¤u§@¤¤Á`µ²¥X¤F¦bVFP¹B¦æ¤¤§Q¥ÎExcel¸Õºâªí»s§@¸ê®Æ®w³øªíªº¤èªk¡C½sµ{¤¤¥Dn¨Ï¥Î¤FCreateObject()¨ç¼Æ¡A¥¦¥i±qÃþ©w¸q©Î¤ä´©OLE¦Û°Ê¤ÆªºÀ³¥Îµ{¦¡¤¤³Ð«Øª«¥ó¡A¨Ã±Nª«¥ó¤Þ¥Î½áµ¹ÅܼƩΰ}¦C¤¸¯À¡FY¨Ï¥Î¥Î¤á¦Û©w¸qÃþ¡A«h¦b³Ð«Øª«¥ó¤§«e¡A¥Î¤á¦Û©w¸qÃþ¥²¶·¥ý¥Î Define Class ¨Ó³Ð«Ø¡A©ÎªÌ¥Î SET Classlib ¥´¶}ªº .VCX ¥iµøÃþ®w¤¤ªºÃþ¡C
¡@¡@°²©w¦b¤@ÓVFP±M®×¤¤¦³¸ê®Æªí¡Gtable1.dbf¡]¨ä¤¤Á`¤À¼È¬°0¡^¡G
¡@¡@§Ú̧Ʊæ¦bVFPªº³oÓ¶µ¥Ø¹B¦æ®É¡A½Õ¥ÎExcel¨Ó³B²z³oÓ¸ê®Æªí¡A¨Ã±N³B²zµ²ªG¦sÀÉ¡C¤UÄѪºµ{¦¡excel01.prg¹ê²{¤F³o¨Çn¨D¡Aµ{¦¡¤¤¥ÎCreateObject()¨ç¼Æ±Ò°ÊExcel¡A¨Ã·s«Ø¤@ÓExcel¤u§@ï¡AµM«á¥´¶}¸ê®Æªítable1.dbf¡A¨ú±o¸Óªíªº°O¿ý¼Æ¡A¨Ã±Nªítable1.dbfªº°O¿ý¸ê®Æ³v±ø°e¨ì³oÓ¤u§@諸¤u§@ªíSheet1¤¤¡]¦P®Épºâ¦U°O¿ýªºÁ`¤À¡^¡Aµy¥[קï¡]¨Ò¦p³]¸m¦rÅé¡B¦r«¬¤j¤p¡Aµeªí®æ½uµ¥¡^§@¥X³oÓ¸ê®Æªíªº³øªí¡A¨Ã¥Îtemp.xlsÀɮצW¦sÀÉ¡Cexcel01.prg®Ú·½µ{¦¡¦p¤U¡G
¡@¡@SET DEFAULT TO d:\myvfp\kwsjk
¡@¡@Clear
¡@¡@oleApp = CREATEOBJECT(″Excel.Application″)
¡@¡@oleApp.Visible=.T. ¡®¡® Åã¥Ü Excel¡C
¡@¡@oleApp.Workbooks.Add
¡@¡@¡¯¡¯ ³]¸m³æ®æªºÈ¡]³øªí¼ÐÃD¡^¡G
¡@¡@oleApp.Cells(1,1).value=″¶Q¦{¤j¾Ç¹q¸£³nÅé»P²z½×¬ã¨s©Ò″
¡@¡@oleApp.Cells(2,1).value=″¾Ç¥Í¦¨ÁZªí″
¡@¡@¡¯¡¯
¡@¡@oleApp.Cells(4,1).value=″©m¦W″
¡@¡@oleApp.Cells(4,2).value=″¼Æ¾Ç″
¡@¡@oleApp.Cells(4,3).value=″ºô¸ô″
¡@¡@oleApp.Cells(4,4).value=″¸ê®Æ®w″
¡@¡@oleApp.Cells(4,5).value=″^»y″
¡@¡@oleApp.Cells(4,6).value=″¤H¤u´¼¼z″
¡@¡@oleApp.Cells(4,7).value=″Á`¤À″
¡@¡@¡¯¡¯ ¥´¶}¸ê®Æªí¡A¨ú±o¸Óªíªº°O¿ý¼Æ
¡@¡@use table1.dbf
¡@¡@jl=RECCOUNT()¡Ð1
¡@¡@¡¯¡¯ ±N¸ê®Æªí¤¤ªº°O¿ý¸ê®Æ©ñ¤JExcel¤u§@諸³æ®æ¤¤
¡@¡@FOR i=0 TO jl
¡@¡@ go i¡Ï1 ¡®¡® ²Äi¡Ï1±ø°O¿ý
¡@¡@oleApp.Cells(5¡Ïi,1).value=table1.©m¦W
¡@¡@ oleApp.Cells(5¡Ïi,2).value=table1.¼Æ¾Ç
oleApp.Cells(5¡Ïi,3).value=table1.ºô¸ô
¡@¡@ oleApp.Cells(5¡Ïi,4).value=table1.¸ê®Æ®w
oleApp.Cells(5¡Ïi,5).value=table1.^»y
¡@¡@ oleApp.Cells(5¡Ïi,6).value=table1.¤H¤u´¼¼z
¡¯¡¯ pºâÁ`¤À¡G
¡@¡@oleApp.Cells(5¡Ïi,7).value=table1.¼Æ¾Ç¡Ïtable1.ºô¸ô¡Ïtable1.¸ê®Æ®w¡Ï
table1.^»y¡Ïtable1.¤H¤u´¼¼z
¡@¡@ENDFOR
¡@¡@OleApp.ActiveWorkbook.SaveAs(″D:\myvfp\kwsjk\temp.XLS″) |
|
¦^³»ºÝ |
|
|
Ruey
µù¥U®É¶¡: 2003-03-12 ¤å³¹: 1698 ¨Ó¦Û: tunglo
²Ä 2 ¼Ó
|
µoªí©ó: ¬P´Á¤é ¤¤ë 04, 2003 3:17 pm ¤å³¹¥DÃD: |
|
|
¦bVFP¤¤¥þ±±±¨îEXCEL
VFP©MExcel³£¥i¥H¥Î¨Ó¶i¦æ³B²z¸ê®Æ®wªí®æ¡A¦pªG¥©§®¦a±N¤GªÌªºÀuÂIµ²¦X°_¨Ó¡A±N·|¤j¤j¤è«K§Ú̪º¤u§@¡C¤ñ¦p§ÚÌ¥i¥H§Q¥ÎVFP¶i¦æ³B²z¸ê®Æ¡A¦Ó§Q¥ÎExcelªº¹wÄý¦C¦L¥\¯à¶i¦æ³øªí¦C¦L¡C³o´N»Ýn§Ú̦bVFP¤¤ª½±µ¨Ó±±¨îExcel¡C¤U±´N¦b¶}µoVFPÀ³¥Î±M®×®É¹ïExcelªº±±¨î§@¤@¤U¤¶²Ð¡G
¡@¡@1¡D³Ð«ØExcel¹ï¶H
¡@¡@eole=CREATEOBJECT(¡¬Excel.application¡¬)
¡@¡@2¡D²K¥[·s¤u§@ï
¡@¡@eole.Workbooks.add
¡@¡@3¡D³]¸m²Ä3Ó¤u§@ªí¬°±Ò°Ê¤u§@ªí
¡@¡@eole.Worksheets(″sheet3″).Activate
¡@¡@4¡D¥´¶}«ü©w¤u§@ï
¡@¡@eole.Workbooks.Open(″c:\temp\ll.xls″)
¡@¡@5¡DÅã¥ÜExcelµøµ¡
¡@¡@eole.visible=.t.
¡@¡@6¡D§ó§ïExcel¼ÐÃDÄæ
¡@¡@eole.Caption=″VFPÀ³¥Îµ{¦¡½Õ¥ÎMicrosoft Excel″
¡@¡@7¡Dµ¹³æ®æ½áÈ
¡@¡@eole.cells(1,4).value=XM(XM¬°¸ê®Æ®wÄæ¦ì¦W)
¡@¡@8¡D³]¸m«ü©w¦Cªº¼e«×(³æ¦ì¡G¦r¤¸Ó¼Æ)
¡@¡@eole.ActiveSheet.Columns(1).ColumnWidth=5
¡@¡@9¡D³]¸m«ü©w¦æªº°ª«×(³æ¦ì¡G½S)
¡@¡@eole.ActiveSheet.Rows(1).RowHeight=1/0.035
¡@¡@(³]©w¦æ°ª¬°1Âç¦Ì¡A1½S=0.035Âç¦Ì)
¡@¡@10¡D¦b²Ä18¦æ¤§«e´¡¤J¤À¶²Å
¡@¡@eole.Worksheets(″Sheet1″).Rows(1.PageBreak=1
¡@¡@11¡D¦b²Ä4¦C¤§«e§R°£¤À¶²Å
¡@¡@eole.ActiveSheet.Columns(4).PageBreak=0
¡@¡@12¡D«ü©wÃä®Ø½u¼e«×(Borders°Ñ¼Æ¦p¤U)
¡@¡@ole.ActiveSheet.Range(″b3:d3″).Borders(2).Weight=3
¡@¡@13¡D³]¸m¥|ÓÃä®Ø½u±øªºÃþ«¬
¡@¡@eole.ActiveSheet.Range(″b3:d3″).Borders(2).LineStyle=1
¡@¡@(¨ä¤¤Borders°Ñ¼Æ¡G1¡Ð¥ª¡B2¡Ð¥k¡B3¡Ð³»¡B4¡Ð©³¡B5¡Ð±×¡B6¡Ð±×/¡FLineStyleÈ¡G1»P7¡Ð²Ó¹ê¡B2¡Ð²Óµê¡B4¡ÐÂIµê¡B9¡ÐÂù²Ó¹ê½u)
¡@¡@14¡D³]¸m¶¬Ü
¡@¡@eole.ActiveSheet.PageSetup.CenterHeader=″³øªí1″
¡@¡@15¡D³]¸m¶¸}
¡@¡@eole.ActiveSheet.PageSetup.CenterFooter=″²Ä¡®P¶″
¡@¡@16¡D³]¸m¶¬Ü¨ì³»ºÝÃä¶Z¬°2Âç¦Ì
¡@¡@eole.ActiveSheet.PageSetup.HeaderMargin=2/0.035
¡@¡@17¡D³]¸m¶¸}¨ì©³Ãä¶Z¬°3Âç¦Ì
¡@¡@eole.ActiveSheet.PageSetup.FooterMargin=3/0.035
¡@¡@18¡D³]¸m³»Ãä¶Z¬°2Âç¦Ì
¡@¡@eole.ActiveSheet.PageSetup.TopMargin=2/0.035
¡@¡@19¡D³]¸m©³Ãä¶Z¬°4Âç¦Ì
¡@¡@eole.ActiveSheet.PageSetup.BottomMargin=4/0.035
¡@¡@20¡D³]¸m¥ªÃä¶Z¬°2Âç¦Ì
¡@¡@veole.ActiveSheet.PageSetup.LeftMargin=2/0.035
¡@¡@21¡D³]¸m¥kÃä¶Z¬°2Âç¦Ì
¡@¡@eole.ActiveSheet.PageSetup.RightMargin=2/0.035
¡@¡@22¡D³]¸m¶±¤ô¥©~¤¤
¡@¡@eole.ActiveSheet.PageSetup.CenterHorizontally=.t.
¡@¡@23¡D³]¸m¶±««ª½©~¤¤
¡@¡@eole.ActiveSheet.PageSetup.CenterVertically=.t.
¡@¡@24¡D³]¸m¶±¯È±i¤j¤p(1¡Ð¯¶¦æ8úP5úR11 39¡Ð¼e¦æ14úR11)
¡@¡@eole.ActiveSheet.PageSetup.PaperSize=1
¡@¡@25¡D¦C¦L³æ®æºô½u
¡@¡@eole.ActiveSheet.PageSetup.PrintGridlines=.t.
¡@¡@26¡D«þ¨©¾ãÓ¤u§@ªí
¡@¡@eole.ActiveSheet.UsedRange.Copy
¡@¡@27¡D«þ¨©«ü©w°Ï°ì
¡@¡@eole.ActiveSheet.Range(″A1:E2″).Copy
¡@¡@28¡DÖ߶K
¡@¡@eole.WorkSheet(″Sheet2″).Range(″A1″).PasteSpecial
¡@¡@29¡D¦b²Ä2¦æ¤§«e´¡¤J¤@¦æ
¡@¡@eole.ActiveSheet.Rows(2).Insert
¡@¡@30¡D¦b²Ä2¦C¤§«e´¡¤J¤@¦C
¡@¡@eole.ActiveSheet.Columns(2).Insert
¡@¡@31¡D³]¸m¦rÅé
¡@¡@eole.ActiveSheet.Cells(2,1).Font.Name=″¶ÂÅé″
¡@¡@32¡D³]¸m¦rÅé¤j¤p
¡@¡@eole.ActiveSheet.Cells(1,1).Font.Size=25
¡@¡@33¡D³]¸m¦rÅ鬰±×Åé
¡@¡@eole.ActiveSheet.Cells(1,1).Font.Italic=.t.
¡@¡@34¡D³]¸m¾ã¦C¦rÅ鬰²ÊÅé
¡@¡@eole.ActiveSheet.Columns(1).Font.Bold=.t.
¡@¡@35¡D²M°£³æ®æ¤½¦¡
¡@¡@eole.ActiveSheet.Cells(1,4).ClearContents
¡@¡@36¡D¦C¦L¹wÄý¤u§@ªí
¡@¡@eole.ActiveSheet.PrintPreview
¡@¡@37¡D¦C¦L¿é¥X¤u§@ªí
¡@¡@eole.ActiveSheet.PrintOut
¡@¡@38¡D¤u§@ªí¥t¬°
¡@¡@eole.ActiveWorkbook.SaveAs(″c:\temp\22.xls″)
¡@¡@39¡D©ñ±ó¦sÀÉ
¡@¡@eole.ActiveWorkbook.saved=.t.
¡@¡@40¡DÃö³¬¤u§@ï
¡@¡@eole.Workbooks.close
¡@¡@41¡D°h¥XExcel
¡@¡@eole.quit
¡@¡@¥H¤W±±¨î½Õ¥Î»y¥y¦b¤¤¤åVFP5.0¥ø·~ª©¤U¹B¦æ³q¹L¡A¹B¦æÀô¹Ò¬°Excel 97¤Î¤¤¤åWindows 98 _________________ #############################
§Ö¼Ö¶ý«}¨t¦C©¯ºÖ¦v°t,³Ü¤Q¥þÂû´ö~ì¨Ó©¯ºÖ¨º»ò²³æ!!
¾Ç·|VFP¨Ï¥ÎªÌªÀ°Ïªº·j´M,Code¤~·|§ó¦³½ì~
############################# |
|
¦^³»ºÝ |
|
|
Ruey
µù¥U®É¶¡: 2003-03-12 ¤å³¹: 1698 ¨Ó¦Û: tunglo
²Ä 3 ¼Ó
|
µoªí©ó: ¬P´Á¤é ¤¤ë 04, 2003 3:18 pm ¤å³¹¥DÃD: |
|
|
VFP½Õ¥ÎEXCELªº¸É¥R¤èªk
¤U±¬O§Ú¨Ï¥Î VFP CALL EXCELªº³¡¤À¨Ò¤l¡G
³o¬O¥»¤H±q®Ñ¥»¤W§Ûªº¤ùÂ_©M§Úªº¤p¤p¸gÅç¡A¥i¥HÅý§A«Ü¤è«Kªº¦b VFP ¤¤½Õ¥Î EXCEL¡A©Ò¦³ªº±`¦¡§Ú³£¸ÕÅç¹L¡C
¥ÎVisual Foxpro ³]p¥ÎExcelªí®æªºµ{¦¡
§Q¥ÎOLE Automation ³]pExcel À³¥Îµ{¦¡
Excel¤ä´©ªºª«¥ó»¡©ú¡G
(a) VBA ¹ï¶H¡G
ª«¥ó¦WºÙ ·N¸q
Application ExcelÀ³¥Îµ{¦¡ª«¥ó
WorkBooks Excel¬¡¶Á¡¹ï¶H
(b)©Ò¨Ï¥ÎªºMethod
ª«¥ó¦WºÙ Method °õ¦æ·N¸q
Application Cells ³]©w©Î¶Ç¦^¨Ó¬YÓºô®æªº¤º®e
Range ¶Ç¦^©Î³]©w¬Y¤@Ó½d³òªººô®æ
Charts ¶Ç¦^©Î³]©w¬¡¶Ã¯ªº³æ¤@²Îpªí
Quit µ²§ô Excel Application
Save ±Ò°Ê¦sÀxÀɹï¸Ü¤è¶ô
WorkBooks Add ·s¼W¤@Ó¤u§@ï
Charts Add ·s¼W¤@Ó²Îp¹Ï
(c)©Ò¨Ï¥ÎªºProperty
ª«¥ó¦WºÙ Property ³]©w·N¸q
Application Visible ¬O§_²{¹ê¦A SCREEN¤W .T. , .F.
value ¶Ç¦^©ÎªÌ³]©w¦sÀxÀɪº¤º®e
ActiveSheet ¦^À³Excel Application °õ¦æ¤u§@ªíª«¥ó
¹ê¨Ò»¡©ú¡G
±Ò°ÊExcel¡G
MyExcel=CreateObject('Excel.Application') &&«Ø¥ßExcelª«¥ó
MyExcel.Visible=.T. &&ÅýExcelª«¥ó¦A¿Ã¹õ¤WÅã¥Ü¥X¨Ó
¦p¦ó¼W¥[¤u§@ï¡G
MyExcel.WorkBooks.Add &&¦bExcelª«¥ó¤¤¼W¥[¤@¥÷¤u§@ï¡]WorkBook)
¦p¦ó¦b¤u§@襤¼W¥[Sheet(¤u§@ªí¡^
MyExcel.Sheets.Add &&¼W¥[¤u§@ªí¡]¦b·í«e¤u§@襤¡^
¦p¦ó§R°£¤u§@ªí
MyExcel.ActiveWorkBooks.Sheets(1).Delete &&§â¤u§@襤ªºBOOK¡]1¡^ §R°£
¦V«ü©wªº¤u§@襤ªº¤u§@ªí(Sheet)¤¤¦sÀx¸ê®Æ
*Excel.application Object
*Excel.application.ActiveWorkBook Property
*WorkBOoks Object
*WorkBOoks ObjectªºAdd Method.
*Sheets¹ï¶H
*Sheets(Index)ª«¥ó«ü©w¯Á¤Þ¤u§@ªí
*Excel.Applicationª«¥óªºCells Methodµ²¦XvalueÄÝ©Ê
Example:
CLEAR ALL
SET PATH TO SYS(2004)+'SAMPLES\DATE'
USE CUSTOMER
MYEXCEL=CREATEOBJEXT('EXCEL.APPLICATION')
MYEXCEL.VISIBLE=.T.
MYEXCEL.WORKBOOKS.ADD
MYEXCEL.ACTIVEWORKBOOK.SHEETS(1).CELLS(1,1).value='«È¤á½s¸¹'
MYEXCEL.ACTIVEWORKBOOK.SHEETS(1).CELLS(1,2).value='¤½¥q¦æ¸¹'
SELECT CUSTOMER
R=2
C=1
GOTO TOP
FOR I=1 TO 20
MYEXCEL.ACTIVEWORKBOOK.SHEETS(1).CELLS(R,C).value=CUSTOMER.CUST_ID
MYEXCEL.ACTIVEWORKBOOK.SHEETS(1).CELLS(R,C+1).value=CUSTOMER.COMPANY
R=R+1
SKIP
ENDFOR
½Õ¾ã³æ®æ¼e«×¡G
MYEXCEL.ACTIVEWORKBOOK.SHEETS(1).CELLS(1,1).columnwidth=30
½Õ¾ã³æ®æ¹ï»ô¤è¦¡¡G
MYEXCEL.ACTIVEWORKBOOK.SHEETS(1).CELLS(1,1).horizontalalig=1
1¬°Àq»{¤è¦¡¡A2¬°¥ª¹ï»ô¡A3¬°¤¤¹ï»ô¡A4¬°¥k¹ï»ô¡C
¦p¦ó±N¸ê®Æ¦sÀx¡G
MYEXCEL.SAVE()
ª`:¥i¥H¥ÎSave(FileName)«ü©w¹w¦sÀxÀɮצW, «h¥i¤£¥Î±Ò°ÊSAVE AS µ¡¤f
¦p¦ó¦C¦Lªí®æ¡G
MYEXCEL.ActiveWorkBook.PrintOut &&Àq»{¦C¦L¼WÓSheet
¦p¦ó«ü©w¦C¦Lªí®æ¡G
MYEXCEL.ActiveWorkBook.PrintOut(1,1,1,.T.) &&Àq»{¦C¦L¼WÓSheet
PrintOut¦³¥|ӰѼÆ
A. ¼ÆÈ:,ªí¥Ü«ü©wªº¤u§@襤¶i¦æ¦C¦LªºSheet ªº¶}©l½s¸¹
B. ¼ÆÈ:,ªí¥Ü«ü©wªº¤u§@襤¶i¦æ¦C¦LªºSheet ªºµ²§ô½s¸¹
C.¦C¦L¤À¼Æ.
D.¬O§_¶i¦æ Preview, .T.,¹wÄý, .F.¦C¦L
¦p¦ó²£¥Í²Îp¹Ï
CURROW=MYEXCEL.ACTIVESHEET.ROWS.COUNT
RANGESTRING='A1:'+'B'+ALLTRIM(STR(CURROW))
MYEXCEL.RANGE(RANGESTRING).SELECT
MYEXCEL.CHARTS.ADD
µ²§ôEXCEL
MYEXCEL.QUIT
EXCEL.ActiveWindow.SelectedSheets.PrintPreview &&¹wÄý¦C¦L
EXCEL.ActiveWorkbook.SaveAs("C:\My Documents\Book1.xls") &&¥t¦s¬°
EXCEL.ActiveWorkbook.Close &&Ãö³¬¤@Ó¤u§@ªí¡A¦pªG¦³×§ï«h´£¥Ü
EXCEL.ActiveWorkbook.Close(.t.) &&´£¥Ü¥t¦s¬°
EXCEL.ActiveWorkbook.Close(.f.) &&Ãö³¬¤@Ó¤u§@ªí¤£¥Î´£¥Ü¬O§_¦sÀÉ _________________ #############################
§Ö¼Ö¶ý«}¨t¦C©¯ºÖ¦v°t,³Ü¤Q¥þÂû´ö~ì¨Ó©¯ºÖ¨º»ò²³æ!!
¾Ç·|VFP¨Ï¥ÎªÌªÀ°Ïªº·j´M,Code¤~·|§ó¦³½ì~
############################# |
|
¦^³»ºÝ |
|
|
Ruey
µù¥U®É¶¡: 2003-03-12 ¤å³¹: 1698 ¨Ó¦Û: tunglo
²Ä 4 ¼Ó
|
µoªí©ó: ¬P´Á¤é ¤¤ë 04, 2003 3:19 pm ¤å³¹¥DÃD: |
|
|
VFP¤UªºSQL©MEXCEL§Þ³N
¡@¡@§Ú̳£ª¾¹D¦b EXCEL ¤¤¦³«Ü¦h«Ü¦hªºpºâ¤½¦¡¡BÆF¬¡¦hÅܪºpºâ¤è¦¡¡B¤è«K§Ö±¶ªº¹Ïªí³B²z¡B©M¥\¯à±j¤jªº¡@VBA¡@»y¨¥¡A¥i¥H»¡ EXCEL ¥i¯à¬O³Ì¦n¥Îªºªí®æ³B²z³nÅé¡C§Ú´±»¡¡G·L³nªº²£«~¤¤¤j·§´N EXCEL ³Ì¦n¡I
¡@¡@¦ý¬O¡A«ç¼Ë¥Î Foxpro §Ö³t²£¥Í²Îpªí¡A¨Ã±N¸ê®Æ°e¨ì Excelªí®æ¤¤¡A±q¦Ó¥N´À Foxpro ªº³øªí¤u¨ã©O?
¡@¡@§Ṳ́j®a³£ª¾¹D¡A¦b Visual Foxpro 3.0¤Î¥H«áª©¥»¤¤´£¨Ñ¤F¤@Ó½Õ¥ÎOle Automation ªº¨ç¼Æ CREATEOBJECT¡A¥Î¸Ó¨ç¼Æ¥i¥HÅý Visual Foxpro «Ü¤è«Kªº©M¨ä¥L¥i¥H´£¨Ñ Ole Automation ªA°Èªºµ{¦¡¶i¦æ³q°T¡C¦Ó Excel §ó¬O¤@ӼзǪº Ole Automation ¦øªA¾¹µ{¦¡¡A§ÚÌ¥i¥H¦b«eºÝ±N¸ê®Æ¶Ç°e¨ì«áºÝªº Excel ªA°Èµ{¦¡¡A¥Î«áºÝªA°Èµ{¦¡¶i¦æªí®æ³B²z¡A±q¦ÓÀ±¸É Visual Foxproªº¤£¨¬¡C
¡@¡@¥Ñ©ó¾ú¥vì¦]¡A§Ú̧@³øªí³£²ßºD¥Î Total¡BCount¡BSum ©ÎªÌª½±µ¦b³øªí¤¤¤u¨ã¤¤pºâ¡A³t«×³Ì§Öªº¤j·§¤]´N¬O Total ¤F¡A¦ý¤£ª¾¹DÁÙ¦³¦h¤Ö¤HÁÙ¦b°í«ù¨Ï¥Î Total ©R¥O¶i¦æpºâ¡A¦³¨S¦³§ó¦nªºpºâ¤èªk©O¡H·íµM¦³°Õ¡I§Ú¦b¹ê»Ú¨Ï¥Î¤¤¿n²Ö¦³¤@©wªº¸gÅç¦ýÄ@¯àµ¹¦U¦ì°_¨ì¤p¤pªº±Òµo¡C
°²³]¦³¤@ªí¡GTable1 ¬O¤@Ó¤HûÀɮסAùرªºªíµ²ºc¦p¤U¡G
¡Ð¡Ð¡Ð¡Ð¡Ð Äæ¦ì¦W ¡Ð¡Ð Ãþ«¬¤Îªø«×¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð
¡@¡@¡@¡@¡@¡@½s¸¹¡@¡@¡@¡@C,2
¡@¡@¡@¡@¡@¡@³¡ªù¡@¡@¡@¡@C,10
¡@¡@¡@¡@¡@¡@©m¦W¡@¡@¡@¡@C,10
¡@¡@¡@¡@¡@¡@©Ê§O¡@¡@¡@¡@C,2
¡@¡@¡@¡@¡@¡@¥X¥Í¤é´Á¡@¡@D
¡@¡@¡@¡@¡@¡@¾°È¡@¡@¡@¡@C,10
¡@¡@¡@¡@¡@¡@¤å¤Æµ{«×¡@¡@C,10
¤º®e¤j·§¦p¤U
TABLE1.DBF
¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð
½s¸¹¡@¡@³¡ªù¡@¡@©m¦W¡@¡@©Ê§O¡@¡@¥X¥Í¤é´Á¡@¡@¾°È¡@¡@¡@¡@¤å¤Æµ{«×¡@
¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð
¡@1¡@¡@¤uµ{³¡¡@¡@±i¤T¡@¡@¨k¡@¡@1971-01-11¡@¤uµ{®v¡@¡@¡@¤j¾Ç¥»¬ì¡@
¡@2¡@¡@¾P°â³¡¡@¡@§õ¥|¡@¡@¨k¡@¡@1967-02-23¡@¸g²z¡@¡@¡@¡@¤j¾Ç¥»¬ì¡@
¡@3¡@¡@¤uµ{³¡¡@¡@¤ýªZ¡@¡@¡@¡@¡@1954-03-14¡@§Þ³Nû¡@¡@¡@¤j¾Ç±M¬ì¡@
¡@4¡@¡@Á`¸g²z«Ç¡@»¯¼ä¶®¡@¤k¡@¡@1975-04-05¡@¯µ®Ñ¡@¡@¡@¡@ºÓ¤h¬ã¨s¥Í
¡@5¡@¡@¾P°â³¡¡@¡@¡D¡D¡@¡@¡@¡@¡@1977-05-09¡@¾P°â¸g²z¡@¡@°ª¤¤¡@¡@¡@
¡@6¡@¡@¤uµ{³¡¡@¡@¤j¤å¡@¡@¡@¡@¡@1969-03-30¡@Á`¤uµ{®v¡@¡@¤j¾Ç±M¬ì¡@
¡@7¡@¡@¾P°â³¡¡@¡@¡D¡D¡@¡@¡@¡@¡@1961-10-10¡@¾P°â¸g²z¡@¡@¤j¾Ç±M¬ì¡@
¡@8¡@¡@Á`¸g²z«Ç¡@²ø½[¡@¡@¡@¡@¡@1961-10-10¡@Á`¸g²z¡@¡@¡@¤j¾Ç±M¬ì¡@
¡@¡@·íµM¹ê»Úªº¸ê®ÆÀ³¸Ó¤ñ³oùئh«Ü¦h¡An¤£Á٥βÎp·F¶Ü¡A§Ú¤£¹L¬OÁ|¨Ò»¡©ú¦Ó¤w¡C§Ú¤£ª¾¹D§A̦b¨Ï¥Î SQL »y¥y®É¦³¨S¦³¥Î¨Ï¥Î¨ç¼Æªº²ßºD¡A¤Ï¥¿§Ú¬O¬Û·íÄ@·N¦b SQL ¤¤¨Ï¥Î¨ç¼Æ¡A§Ú»{¬°¨Ï¥Î¨ç¼Æªº SQL »y¥yÁöµM»y¥yªø¤@ÂI¡A¦ý¬O¥i¥HÅý§Aªºµ{¦¡¬Ý°_¨Ó§ó²M´·¡B²¼ä¡C
¡@¡@»¡¹D³oùاÚn·PÁ·íªìµo©ú¥X IIF ¨ç¼Æ¨º¦ì¤¸°ª¤H¡An¨S¦³¥L(¦o)§Ú¤]¨S¦³¾÷·|¦b³oùØÅo¶Û³o»ò¤[¡A¦b«á±´£¨ìªº§Ö³t²£¥Í²Îpªí¤¤±N¤j¶qªº¹B¥Î IIF ¨ç¼Æ¡C¤]³\§A·|ı±o©_©Ç¡A§A²Îpªº®ÉԥΨº»ò¦h IIF ·F¶Ü¡H§O«æ¡A¤U±´NÅý§ÚºCºCªº§i¶D§A¡C
¡@¡@¬Ý¬Ý§ÚÌ«e±´yzªºªí¡A§ÚÌ¥i¯àn²Îp¦UÓ³¡ªùªº¡§©Ê§O¡U¾°È¡U¤å¤Æµ{«×¡¨µ¥ªº¤À§G±¡ªp¡A²³æ¤@ÂI§Úµ¹µe¤F¤@ÓªíÓ¥X¨Ó¡A¥i¯àªí®æ§ó¯à»¡©ú¥Õ¡G
¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¦U³¡ªù¤Hû¤À§G±¡ªpªí
¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@³æ¦ì¡G¤H
¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð
³¡ªù¡@¡@¡U¡@¨k¡U¡@¤k¡U¡@¥»¬ì¡@¡U¡@±M¬ì¡U§Þ³N¤Hû¡UºÞ²z¤Hû¡U¯µ®Ñ¡@
¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð
¤uµ{³¡¡@¡U¡@¡@¡U¡@¡@¡U¡@¡@¡@¡@¡U¡@¡@¡@¡U¡@¡@¡@¡@¡U¡@¡@¡@¡@¡U¡@¡@¡@
¾P°â³¡¡@¡U¡@¡@¡U¡@¡@¡U¡@¡@¡@¡@¡U¡@¡@¡@¡U¡@¡@¡@¡@¡U¡@¡@¡@¡@¡U¡@¡@¡@
Á`¸g²z«Ç¡U¡@¡@¡U¡@¡@¡U¡@¡@¡@¡@¡U¡@¡@¡@¡U¡@¡@¡@¡@¡U¡@¡@¡@¡@¡U¡@¡@¡@
¡@¡@¡@¡@¡U¡@¡@¡U¡@¡@¡U¡@¡@¡@¡@¡U¡@¡@¡@¡U¡@¡@¡@¡@¡U¡@¡@¡@¡@¡U¡@¡@¡@
¡@¡@¡@¡@¡U¡@¡@¡U¡@¡@¡U¡@¡@¡@¡@¡U¡@¡@¡@¡U¡@¡@¡@¡@¡U¡@¡@¡@¡@¡U¡@¡@¡@
¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð¡Ð
¡@¡@¤W±³o±iªí»¡½ÆÂø¤]¤£½ÆÂø¡A¦ý¬O¥Î±`µ¹ªº³B²z¤èªk¥i¯à¤]n¯Ó±¼§Ṳ́£¤Öªº®É¶¡¡A¦]¬°§A¤£±o¤£°w¹ï¤£¦Pªº¶µ¥Ø¶i¦æ³æ¿W¤Ï´_ªºpºâ¡A¥i¯àÁÙn¥Í¦¨¤@¤j°ïªºÁ{®Éªí¯u·Ð¡I¤U±ªºpºâ¤½¥q¥iÅý§A»´ÃP§¹¦¨¤W±ªºªí®æ¡A·íµMµ{¦¡ÁÙ¬On¼gªº¤£¥i¯à¤°»ò¤]¤£°Ê¤£·Q´N¯à¹F¨ìªº¡A¥ß§Y¿é¤J¤U¦Cµ{¦¡¡G
²Ä¤@¨B¡GÂà´«
Select ³¡ªù,;
¡@¡@¡@¡@iif(©Ê§O='¨k',1,0) as ¨k,;
¡@¡@¡@¡@iif(©Ê§O='¤k',1,0) as ¤k,;
¡@¡@¡@¡@iif(¤å¤Æµ{«×='¤j¾Ç¥»¬ì',1,0) as ¤j¾Ç¥»¬ì,;
¡@¡@¡@¡@iif(¤å¤Æµ{«×='¤j¾Ç±M¬ì',1,0) as ¤j¾Ç±M¬ì,;
¡@¡@¡@¡@iif(inlist(¾°È,'¤uµ{®v','§Þ³Nû','Á`¤uµ{®v'),1,0) as §Þ³N¤Hû,;
¡@¡@¡@¡@iif(inlist(¾°È,'Á`¸g²z','¸g²z','¾P°â¸g²z'),1,0) as ºÞ²z¤Hû,;
¡@¡@¡@¡@iif(inlist(¾°È,'Á`¸g²z','¸g²z','¾P°â¸g²z'),1,0) as ºÞ²z¤Hû,;
¡@¡@¡@¡@iif(inlist(¾°È,'¯µ®Ñ'),1,0) as ¯µ®Ñ;
from table into cursor query1
²Ä¤G¨B¡GÂà´«¨Ãpºâ
Select ³¡ªù¡@¡@¡@¡@¡@ as ³¡ªù,;
¡@¡@¡@¡@sum(¨k)¡@¡@¡@ as ¨k,;
¡@¡@¡@¡@sum(¤k)¡@¡@¡@ as ¤k,;
¡@¡@¡@¡@sum(¤j¾Ç¥»¬ì) as ¤j¾Ç¥»¬ì,;
¡@¡@¡@¡@sum(¤j¾Ç±M¬ì) as ¤j¾Ç±M¬ì,;
¡@¡@¡@¡@sum(§Þ³N¤Hû) as §Þ³N¤Hû,;
¡@¡@¡@¡@sum(ºÞ²z¤Hû) as ºÞ²z¤Hû,;
¡@¡@¡@¡@sum(ºÞ²z¤Hû) as ºÞ²z¤Hû,;
¡@¡@¡@¡@sum(¯µ®Ñ)¡@¡@ as ¯µ®Ñ;
from query1 into cursor query1;
group by ³¡ªù
¡@¡@¤£n¥H¬°§Ú§â¡§from query1 into cursor query1¡¨¼g¿ù¤F¡A³o¼Ë¼gªº»y¥y½T¹ê¥i¥H¨Ï¥Î¡C
¡@¡@¨ì³o¤@¨B¡A²Îpªí´Npºâ¥X¨Ó¤F¡A¤£«H¥Î BROWSE ¬Ý¬Ý¡C©¹¤U±§ÚÌÀ³¸Ó»¡»¡«ç¼Ë§â²{¦b²Îp¥Xªº¸ê®Æ¿é¥X¨ì EXCEL ¤¤¤F¡]·íµM¤°»ò¼Ë¤lªº¸ê®Æ³£¥i¥H¡^¡C
º¥ý¥Î CreateObject ¨ç¼Æ«Ø¥ß¤@Ó Excel automation ª«¥ó¡Aµ{¦¡¦p¤U¡G
local excel,o
define windows WaitWin at 0,0 size 10,60 system ;
font 'times new roman',12 ;
title '´£¥Ü' close float zoom &&¥Î©ó³B²z´£¥Ü¸ê°Tªºµøµ¡
move windows waitWin center
acti windows waitwin
set color to w+/n
clear
excel=createobject('excel.application')
if type('excel')='U' &&¥¼¯à²£¥ÍEXCELª«¥ó
¡@¡@? '±Ò°Ê EXCEL ¥¢±Ñ...'
¡@¡@release windows WaitWin
¡@¡@return
endif
ReportTitle='XXXX¤½¥q¤Hû¤À§G±¡ªp'
ExcelFile="xls1.xls"
excel.caption=ReportTitel
select query1
if not file(ExcelFile)
¡@¡@export to (ExcelFile) type xls
endif
excel.workbooks.open(ExcelFile)
o=excel.activeworkbook.activesheet &&¥Îª«¥ó¥N´À³o»òªøªº¤@¦ê¦r
o.cells(1,1).value=ReportTitle
*
* ²Ä¤@¦æ¬O¼ÐÃD,¬G±q²Ä¤G¦æ¶}©l
*
scan for recno()>1 &&¨C¤@¦æ
¡@¡@?'¥¿¦b±N¸ê®ÆÂà´«¨ì Excel ªí®æ¤¤...',recno()
¡@¡@for i=1 to fcount() &&¨C¤@¦C
¡@¡@¡@¡@fld=field(i)
¡@¡@¡@¡@if type(fld)='C'&&¦pªGÄæ¦ì¤Ó¼e¡AExcel¥i¯à¤£¯à¥¿½T±µ¨ü¸ê®Æ
¡@¡@¡@¡@¡@¡@o.cells(recno()+3,i).value=trim(&fld)
¡@¡@¡@¡@else
¡@¡@¡@¡@¡@¡@o.cells(recno()+3,i).value=&fld
¡@¡@¡@¡@endif
¡@¡@endfor
endscan
o.cells(1,1).select
excel.ActiveWindow.windowstate=2
excel.ActiveWorkbook.save()
excel.visible=.t.
clear
startTime=time()
set cursor off
*
* µ¥«Ý Excel ³B²z§¹²¦«á¦AÄ~Äò
*
do while .t.
¡@¡@@1,4 say '¤w±Ò°Ê«á»O Excel ªí®æ³B²zµ{¦¡,³B²z¤¤...'
¡@¡@@2,4 say 'Ctrl+End Ä~Äò³B²z...'
¡@¡@@4,4 say '¶}©l®É¶¡:'
¡@¡@??starttime
¡@¡@@5,4 say '²{¦b®É¶¡:'
¡@¡@??time()
¡@¡@&&VFP·|¦b¦¹µ¥«Ý¡A°£«D§A±q EXCEL¤¤°h¥X©Î«ö¤U Ctrl+EndÁä
¡@¡@if inkey(0.5)=23 or type('o.name')='U'
¡@¡@¡@¡@exit
¡@¡@endif
enddo
set cursor on
release o,excel
release FindWindow
?'³B²z§¹²¦...'
=inkey(0.5)
release windows WaitWin
end note _________________ #############################
§Ö¼Ö¶ý«}¨t¦C©¯ºÖ¦v°t,³Ü¤Q¥þÂû´ö~ì¨Ó©¯ºÖ¨º»ò²³æ!!
¾Ç·|VFP¨Ï¥ÎªÌªÀ°Ïªº·j´M,Code¤~·|§ó¦³½ì~
############################# |
|
¦^³»ºÝ |
|
|
garfield Site Admin
µù¥U®É¶¡: 2003-01-30 ¤å³¹: 2158
²Ä 5 ¼Ó
|
µoªí©ó: ¬P´Á¤T ¤C¤ë 02, 2003 1:23 am ¤å³¹¥DÃD: |
|
|
VFP»PEXCELªº´XºØ¥æ¤¬½sµ{¤èªk
¤@¡BEXECLÅX°ÊVFP
EXECL¤º¸mªºVBA»y¨¥¡]Visual Basic For Application¡^爲EXECL¥\¯àªºÂX®i´£¨Ñ¤F«K§Qªº¤â¬q¡A¥Î¤á¥i¨Ï¥Î¸Ó»y¨¥ª½±µÅX°ÊVFP§¹¦¨¸ê®ÆÀ˯Áµ¥¥\¯à¡C
µ{¦¡º¥ý¥Í¦¨¤@ÓVFPª«¥ó¡AµM«á¥ÎVFPªºDoCmd¤èªk°õ¦æVFPºN¯Á©R¥O¦ê¡A¨äºN¯Áµ²ªG¦AɧU©óVFPªºDateToClip¤èªk«þ¨©¦Ü°Å¤ÁªO¡A³Ì«áVBA±N¨äÖ߶K¦Ü¤u§@ªíªº¥¿½T¦ì¸m¡C
Sub FoxTest()
Dim oFox As Object
Dim SLesson As String
Dim SCommand As String
Set oFox = CreateObject("VisualFoxPro.Application") '啓°ÊVFP¡A¥Í¦¨VFPª«¥ó
Sheets("¬d¸ß").Select
SLesson = Range("½Òµ{¦W") '¦b¦W爲¡§½Òµ{¦W¡¨ªº³æ®æ¤¤±o¨ì±ý¬d¸ßªº½Òµ{¦WºÙ
Sheets.Add '産¥Í·sªº¤u§@ªí³æ
ActiveSheet.Name = Slesson '«ü©w¤u§@ªí³æªº¦WºÙ»P½Òµ{¦WºÙ¬Û¦P
SCommand = "SELECT ¾Ç¸¹,»y¤å,¼Æ¾Ç FROM d:\vfp\¾Ç¥Í¦¨ÁZªí WHERE "+ SLesson + "<60 INTO CURSOR TEMP" '§Î¦¨VFP¬d¸ß©R¥O¦ê
oFox.DoCmd Scommand '°õ¦æVFP©R¥O¦ê
oFox.DataToClip "temp", , 3 '±N·j¯Áµ²ªG¥H¤å¥»¤è¦¡«þ¨©¦Ü°Å¤ÁªO
Range("a1:a1").Select '«ü¦V«þ¨©¥Ø¼Ð°Ï°ì¥ª¤W¨¤³æ¤¸
ActiveSheet.Paste 'Ö߶K·j¯Áµ²ªG
End Sub
爲«K©ó¨Ï¥Î¡A§@ªÌ¦bEXECL¤¤¦Û»s¤F¤@¦W爲¡§·j¯Á¡¨ªº¤u¨ãÄæ¤Î¤@¦W爲¡§¶}©l·j¯Á¡¨ªº«ö¶s¡A¨Ã±N¤Wz¥¨¶°µ{¦¡¬q»P¦Û»s«ö¶s¬ÛÃöÁp¡A«ö¤U¦¹«ö¶s§Y¥i¹B¦æµ{¦¡¨Ã¦bEXCEL¤¤±o¨ìn¨Dªº¸ê®Æ¡C
»s§@¤u¨ãÄæ¤Î«ö¶sªº¤èªk¦p¤U¡G
1. ¿ï¡§¤u¨ã¡¨/¡§¦Û©w¸q¡¨¥\¯àªí¡A¥X²{¦Û©w¸q¹ï¸Ü¤è¶ô¡F
2. ¿ï¾Ü¡§¤u¨ãÄ桨¶®Ø¡AµM«á«ö¤U¡§·s«Ø¡¨«ö¶s¡F
3. ¦b¤u¨ãÄæ¹ï¸Ü¤è¶ô¤¤¿é¤J¡§·j¯Á¡¨§@爲·s«Ø¤u¨ãÄ檺¦WºÙ¡F
4. ¿ï¾Ü¡§©R¥O¡¨¶®Ø¡A¦b¡§Ãþ§O¡¨¦Cªí¤¤¿ï¡§§»¡¨¡A¦b¡§©R¥O¡¨¦Cªí¤¤¿ï¡§¦Û©w¸q«ö¶s¡¨¨Ã±N¨ä©ì©ñ¦Ü·s«Øªº¡§·j¯Á¡¨¤u¨ãÄæ¡F
5. «ö¤U¡§§ó·s©Ò¿ï¤º®e¡¨«ö¶s¡Aº¥ý¦b¡§©R¦W¡¨Ä椤¶ñ¤J«ö¶s¦WºÙ¡§¶}©l·j¯Á¡¨¡AµM«á¿ï¾Ü¡§«ü©w§»¡¨¡A¦bÀH«á¥X²{ªº¡§«ü©w§»¡¨¦Cªí¤¤¿ï¾Ü¤Wz¥¨¶°µ{¦¡FoxTest()§Y¥i¹ê²{爲¸Ó¥¨¶°«ü©w¤@Ó¤u¨ãÄæ«ö¶s¡C
¤G¡BVFP¨Ï¥ÎOLE¥\¯àÅX°ÊEXECL
OLE¡]Object Linking and Embedding¡^ª«¥óÃìµ²»P´O¤J¡A¬OWINDOWSÀ³¥Îµ{¦¡¶¡¬Û¤¬¶Ç»¼©M¦@¥Î¸ê®Æªº¤@ºØ¦³®Ä¤èªk¡CVFPɧU©óOLE¤£¶È¥i¦@¥Î¨ä¥LÀ³¥Îµ{¦¡ªº¸ê®Æ¡A¦Ó¥BÁÙ¯à¥Hª«¥ó¤è¦¡ª½±µ±±¨î¨ä¥LÀ³¥Îµ{¦¡ªº¹B¦æ¡A±q¦Ó¶i¤@¨BÂX®iVFPªº¥\¯à¡CVFP¤ä´©ª½±µ¦bµ{¦¡¤¤³Ð«Ø¡B¨Ï¥Î©M±±¨îOLEª«¥ó¡A¹ê²{OLE¦Û°Ê¤Æ¡C§@爲OLE«È¤áVFP»P§@爲OLE¦øªA¾¹ªºEXCEL¨ã¦³¨}¦nªº½sµ{¤¶±¡A¤Uzµ{¦¡¬q¥ÎOLE¤è¦¡¹ê²{©Òn¨Dªº¥\¯à¡C
µ{¦¡º¥ý¥Í¦¨¤@ÓEXCELªºOLEª«¥óOleApp¥H«K¹ï¨ä¶i¦æ¾Þ§@¡AµM«á§Q¥ÎOLE¥\¯à±qEXCELªí³æ¤¤Àò¨ú±ý¬d¸ßªº½Òµ{¦W¡A¨Ã±±¨îEXCEL¥Í¦¨·sªº¤u§@ªí¡AVFPªº¬d¸ßµ²ªG¤´µM¨Ï¥Î°Å¤ÁªOªº¤è¦¡¶Ç»¼¦ÜEXCEL¤u§@ªí¡C
OleApp=CREATEOBJECT("Excel.Application") && ¥´¶}EXCEL¡A産¥ÍOLEª«¥ó
OleApp.Application.Caption="VFP¥æ¤¬½sµ{" && «ü©w¼ÐÃDÄæ¦WºÙ
OleApp.Application.Visible=.T. && ¸mEXCEL¥i¨£
OleApp.Application.WorkBooks.Open("d:\vfp\VFP¥æ¤¬.xls") && ¥´¶}EXCEL¤u§@ï
DO WHILE .T.
WITH OleApp.Application
nAnswer = MESSAGEBOX("¶}©l·j¯Á¡H", 32+4, "·j¯Á«ü©w¸ê®Æ") &&産¥Í¸ê°T®Ø
IF (.NOT.(nAnswer=6)) && ¦p«ö¤U¡§Yes"«ö¶s¡A«h¶}©l·j¯Á¡A¤Ï¤§°h¥X
EXIT
ENDIF
.Sheets("¬d¸ß").Select && ¿ï¾Ü¡§¬d¸ß¡¨¤u§@ªí³æ
SLesson = OleApp.Application.Range("½Òµ{¦W").value && ±o¨ì±ý¬d¸ßªº½Òµ{¦WºÙ
.Sheets.Add && ·s«Ø¤@¤u§@ªí³æ
.ActiveSheet.Name = Slesson && «ü©w¤u§@ªí³æªº¦WºÙ
SCommand = "SELECT ¾Ç¸¹,»y¤å,¼Æ¾Ç FROM d:\vfp\¾Ç¥Í¦¨ÁZªí WHERE " +ALLTrim(SLesson) + "<60 INTO CURSOR TEMP" && §Î¦¨VFP¬d¸ß©R¥O¦ê
&Scommand && °õ¦æVFP©R¥O¦ê
_VFP.DataToClip("TEMP",,3) && ±N·j¯Áµ²ªG¥H¤å¥»¤è¦¡«þ¨©¦Ü°Å¤ÁªO
.Range("a1:a1").Select && «ü¦V«þ¨©¥Ø¼Ð°Ï°ì¥ª¤W¨¤³æ¤¸
.ActiveSheet.Paste && Ö߶K·j¯Áµ²ªG
ENDWITH
ENDDO
OleApp.Quit && Ãö³¬EXCEL¡A«O¦s§ó·s«áªº¤u§@ï¤å¥ó
¤T¡BVFP¨Ï¥ÎDDE¥\¯àÅX°ÊEXECL
DDE¡]Dynamic Data Exchange¡^°ÊºA¸ê®Æ¥æ´«¡A¬OWINDOWSÀ³¥Îµ{¦¡¶¡¬Û¤¬¶Ç»¼©M¦@¥Î¸ê®Æªº¥t¤@ºØ¦³®Ä¤èªk¡ADDE¥Î¦@¥Î°O¾ÐÅé¦bÀ³¥Îµ{¦¡¶¡¥æ´«¸ê®Æ¡CDDE·|¸Üµo¥Í¦bDDE«È¤á»PDDE¦øªA¾¹À³¥Îµ{¦¡¤§¶¡¡A«È¤áÀ³¥Îµ{¦¡¦V¦øªA¾¹À³¥Îµ{¦¡½Ð¨D¸ê®Æ©MªA°È¡A¦Ó¦øªA¾¹¦^À³«È¤áÀ³¥Îµ{¦¡¹ï¸ê®Æ»PªA°Èªº½Ð¨D¡CDDEªº¸ê®Æ¥æ´«¥i¤À¤TºØ¤è¦¡¡G
* §NÃìµ²¡G«È¤áÀ³¥Îµ{¦¡½Ð¨D¸ê®Æ®É¡A¦øªA¾¹À³¥Îµ{¦¡¤~µo°e¸ê®Æµ¹«È¤áÀ³¥Îµ{¦¡¡F
* ·xÃìµ²¡G¦øªA¾¹À³¥Îµ{¦¡¦b¨C¦¸¸ê®Æ¶µ¥ØªºÈÅܤƮɳ£¦V«È¤áÀ³¥Îµ{¦¡µo°e³q§i¡A¦ý¥¦¨Ã¤£ª½±µµo°eȵ¹«È¤áÀ³¥Îµ{¦¡¡A¦Ó¥Ñ«È¤áÀ³¥Îµ{¦¡¨M©w¬O§_¨ú±o¸Ó¸ê®Æ¡F
* ¼öÃìµ²¡G¦øªA¾¹À³¥Îµ{¦¡¦b¨C¦¸ÈÅܤƮɳ£µo°e¸ê®Æ¶µ¥Øªº·sȵ¹«È¤áÀ³¥Îµ{¦¡¡C
VFP»PEXCEL§¡¤ä´©DDE«È¤á»P¦øªA¾¹¡C¤Uzµ{¦¡¬q¥Ñ§@爲DDE«È¤áªºVFPÀ³¥Îµ{¦¡»P§@爲DDE¦øªA¾¹ªºEXCEL¥ÎDDE¤è¦¡¹ê²{©Òn¨Dªº¥\¯à¡C
µ{¦¡º¥ý啓°ÊEXCEL¡AµM«á¦bVFPÀ³¥Îµ{¦¡»P¡§¬d¸ß¡¨¤u§@ªí³æªº¡§½Òµ{¦W¡¨³æ®æ¤§¶¡§Î¦¨¡§¼öÃìµ²¡¨¡A·í¡§½Òµ{¦W¡¨³æ®æ¤º®e§ïÅܮɡA±N¦Û°Ê°õ¦æ
¡§GetData¡¨¹Lµ{¡C¦b¸Ó¹Lµ{¤¤º¥ýª½±µÀò¨úDDE¸ê®Æ¡A¦pªG¸Ó¸ê®Æ爲¡§ªÅ¡¨¡A«hÃö³¬EXCEL¡Aµ{¦¡µ²§ô¡F¤Ï¤§¡A§Q¥ÎDDEPOKE¥\¯à¦VEXCELµo°eÁä½L©R¥O¦ê¡A¥H§Î¦¨·sªº¤u§@ªí¡A³Ì«áVFP±N¬d¸ßµ²ªG³q¹L°Å¤ÁªO°eEXCEL§Î¦¨n¨Dªº¤u§@ªí¡C
PUBLIC ExcelChan
PUBLIC SheetChan
RUN /N3 C:\Program Files\Microsoft Office\Office\EXCEL.EXE && ¥H¡§¬¡°Ê¡¨»P¡§³Ì¤j¤Æ¤è¦¡啓°ÊEXCEL
ExcelChan = DDEInitiate("Excel",'SYSTEM') && ªì©l¤ÆDDE³q¹DExcelChan
= DDEExecute(ExcelChan,'[Open("d:\vfp\VFP¥æ¤¬.xls")]') && ¥´¶}¡§VFP¥æ¤¬.xls¡¨
SheetChan = DDEInitiate('Excel', '¬d¸ß') && ªì©l¤ÆDDE³q¹DSheetChan
= DDEAdvise(SheetChan, '½Òµ{¦W', 'GetData', 2) && ¦bVFPÀ³¥Îµ{¦¡»P¡§¬d¸ß¡¨¤u§@ªí³æªº¡§½Òµ{¦W¡¨³æ®æ¤§¶¡§Î¦¨¡§¼öÃìµ²¡¨¡I¦pªG¸Ó³æ¤¸¼ÆȧïÅÜ¡A«h°õ¦æ¡§GetData¡¨¹Lµ{¡C
PROCEDURE GetData
PARAMETERS Channel, Action, Item, Data, Format, Advise
IF Action = 'ADVISE' .AND. Item = '½Òµ{¦W' && ¦øªA¾¹´£¨ÑªºÃìµ²¦W爲¡§½Òµ{¦W¡¨
SLesson = Data && ª½±µÀò¨úDDE¦øªA¾¹´£¨Ñªº¸ê®Æ
SLesson = LEFT(SLesson,LEN(SLesson)-2) && ¥h±¼ì©l¸ê®Æ§À³¡ªº®æ¦¡¦r¤¸
IF (LEN(SLesson)=0) && ¦pªG«ü©w³æ®æ¤º®e爲¡§ªÅ¡¨¡A«h°h¥X
= DDETerminate(SheetChan) && ²×¤îDDE³q¹DSheetChan
= DDEExecute(ExcelChan,'[Quit]') && °h¥XEXCEL
= DDETerminate(ExcelChan) && ²×¤îDDE³q¹DExcelChan
ELSE
= DDEExecute(ExcelChan,'[Formula.Goto("½Òµ{¦W")]') && «ü©w¦W爲¡§½Òµ{¦W¡¨
ªº³æ®æ爲¬¡°Ê³æ®æ
= DDEExecute(ExcelChan,'[Copy]') && ±N«ü©w³æ®æ¤º®e«þ¨©¦Ü°Å¤ÁªO
SKey="'%IW%OHR^V{enter}'" && Áä½L©R¥O¦r¦ê¡Aªí¥Ü¡§´¡¤J¡]I¡^|¤u§@ªí(W)¡F®æ¦¡(O)|¤u§@ªí(H)|«©R¦W(R)¡FÖ߶K¡¨
= DDEExecute(ExcelChan,&SKey) && ³q¹LDDE³q¹D±N©R¥O¦ê°eEXCEL
WAIT WINDOW TIMEOUT 2 && µ¥«Ý2¬íÄÁ¥H¹ê²{¤Wz©R¥O¦ê
SCommand = "SELECT ¾Ç¸¹,»y¤å,¼Æ¾Ç FROM d:\vfp\¾Ç¥Í¦¨ÁZªí WHERE " +ALLTRIM(SLesson) + "<60 INTO CURSOR TEMP" && §Î¦¨VFP¬d¸ß©R¥O¦ê
&Scommand && °õ¦æVFP©R¥O¦ê
_VFP.DataToClip("TEMP",,3) && ±N·j¯Áµ²ªG¥H¤å¥»¤è¦¡«þ¨©¦Ü°Å¤ÁªO
SheetChan1 = DDEInitiate("Excel",'&SLesson') && ªì©l¤ÆDDE³q¹DSheetChan1
«ü¦V·s¥Í¦¨ªº¤u§@ªí
= DDEExecute(SheetChan1,'[Paste]') && Ö߶K·j¯Áµ²ªG
= DDETerminate(SheetChan1) && ²×¤îDDE³q¹DSheetChan1
ENDIF _________________ §Q¥Î>>·j´M<<ªº¥\¯à·|¤ñ°ÝªºÁÙn§Ö±o¨ìµª®×. |
|
¦^³»ºÝ |
|
|
Ruey
µù¥U®É¶¡: 2003-03-12 ¤å³¹: 1698 ¨Ó¦Û: tunglo
²Ä 6 ¼Ó
|
|
¦^³»ºÝ |
|
|
goto-dream
µù¥U®É¶¡: 2004-05-11 ¤å³¹: 909
²Ä 7 ¼Ó
|
|
¦^³»ºÝ |
|
|
cityhe4520
µù¥U®É¶¡: 2004-09-15 ¤å³¹: 28
²Ä 8 ¼Ó
|
µoªí©ó: ¬P´Á¤ ¤E¤ë 24, 2004 12:28 am ¤å³¹¥DÃD: ¶WÁ !! |
|
|
¯uªº¤Ó¦n¤H, À°§U§ÚÌ·s¤â, ¶W¦hÁ§AÌ°ª¤âªººB´n !! |
|
¦^³»ºÝ |
|
|
KKKLYNN
µù¥U®É¶¡: 2004-09-17 ¤å³¹: 357
²Ä 9 ¼Ó
|
µoªí©ó: ¬P´Á¤» ¤E¤ë 25, 2004 9:47 am ¤å³¹¥DÃD: |
|
|
°¸µM¶i¤J
¬Ý¨ì¼ö¤ß¤SµL¨pªº¤H
¯u¬O¤Ó¦n¤F |
|
¦^³»ºÝ |
|
|
symis
µù¥U®É¶¡: 2006-11-03 ¤å³¹: 39
²Ä 10 ¼Ó
|
|
¦^³»ºÝ |
|
|
oldvbman
µù¥U®É¶¡: 2007-10-19 ¤å³¹: 13
²Ä 11 ¼Ó
|
µoªí©ó: ¬P´Á¤ ¤Q¤ë 19, 2007 6:04 pm ¤å³¹¥DÃD: |
|
|
«æ»Ý¤F¸ÑVFP,·PÁ¤À¨É |
|
¦^³»ºÝ |
|
|
ufochen
µù¥U®É¶¡: 2003-09-17 ¤å³¹: 165
²Ä 12 ¼Ó
|
µoªí©ó: ¬P´Á¤é ¤Q¤G¤ë 16, 2007 11:30 pm ¤å³¹¥DÃD: |
|
|
½Ð°Ý¤@¤U??
¦³¤Hª¾¹D¦p¦ó±qVFP¤¤³]©w¤w¦s¦b¤§ EXECL ¤u§@ªí
¸Ì±¤§Àx¦s®æ®æ¦¡-->¼ÆÈ--->¨Ï¥Î¤d¦ìªí¥Ü(,)--->¦rÅ鬰¬õ¦â,¦¡¼Ë¬°-1234
ÁÂÁÂ! |
|
¦^³»ºÝ |
|
|
LiuRambo
µù¥U®É¶¡: 2007-11-27 ¤å³¹: 481
²Ä 13 ¼Ó
|
µoªí©ó: ¬P´Á¤@ ¤¤ë 19, 2008 2:58 pm ¤å³¹¥DÃD: |
|
|
¨ü¯qê²L
·P¿E¤£ºÉ°Ú ^o^
¸É¥R¤@¤U
VFP6¸Ì±nÃö³¬WORD»PEXCEL¤å¥ó®É
n§ï¦¨eole.quit()
LiuRambo ¦b ¬P´Á¥| ¤¤ë 29, 2008 4:34 pm §@¤F²Ä 1 ¦¸×§ï |
|
¦^³»ºÝ |
|
|
¤p®á¡EµL²ª
µù¥U®É¶¡: 2003-07-08 ¤å³¹: 304 ¨Ó¦Û: Tainan, Taiwan
²Ä 14 ¼Ó
|
µoªí©ó: ¬P´Á¤ ¤¤ë 23, 2008 2:36 pm ¤å³¹¥DÃD: |
|
|
ufochen ¼g¨ì: | ½Ð°Ý¤@¤U??
¦³¤Hª¾¹D¦p¦ó±qVFP¤¤³]©w¤w¦s¦b¤§ EXECL ¤u§@ªí
¸Ì±¤§Àx¦s®æ®æ¦¡-->¼ÆÈ--->¨Ï¥Î¤d¦ìªí¥Ü(,)--->¦rÅ鬰¬õ¦â,¦¡¼Ë¬°-1234
ÁÂÁÂ! |
(...).NumberFormatLocal = "#,##0_ ;[¬õ¦â]-#,##0 " _________________ ¥Î¤O Try ¤@¤U...¥i¥Hµo²{«Ü¦h¦nª±ªº¨Æ.... |
|
¦^³»ºÝ |
|
|
IORI71721
µù¥U®É¶¡: 2009-06-09 ¤å³¹: 15
²Ä 15 ¼Ó
|
µoªí©ó: ¬P´Á¥| ¤K¤ë 20, 2009 8:40 am ¤å³¹¥DÃD: |
|
|
·PÁ¼ӥDµL¨pªº¤À¨É ¯uªºÀ°¤F¤£¤Ö¦£ |
|
¦^³»ºÝ |
|
|
|
|
±z µLªk ¦b³oÓª©±µoªí¤å³¹ ±z µLªk ¦b³oÓª©±¦^ÂФ峹 ±z µLªk ¦b³oÓª©±½s¿è¤å³¹ ±z µLªk ¦b³oÓª©±§R°£¤å³¹ ±z µLªk ¦b³oÓª©±¶i¦æ§ë²¼ ±z µLªk ¦b³oÓª©±ªþ¥[ÀÉ®× ±z µLªk ¦b³oÓª©±¤U¸üÀÉ®×
|
Powered by phpBB © 2001, 2005 phpBB Group ¥¿Å餤¤å»y¨t¥Ñ phpbb-tw ºûÅ@»s§@
|