  | 
				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 ¤å³¹: 2160
 
  ²Ä 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 ¤å³¹: 166
 
  ²Ä 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§@ 
		 |