  | 
				VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.   
				 | 
			 
		 
		 
	
		| 上一篇主題 :: 下一篇主題   | 
	 
	
	
		| 發表人 | 
		內容 | 
	 
	
		goto-dream
 
 
  註冊時間: 2004-05-11 文章: 909
 
  第 1 樓
  | 
		
			
				 發表於: 星期一 九月 20, 2004 6:01 pm    文章主題: 新編 VFP 控制 EXCEL 的方法(轉貼) | 
				     | 
			 
			
				
  | 
			 
			
				新編 VFP 控制 EXCEL 的方法 SZGJR 編成愛好者
 
http://www.programfan.com/club/showbbs.asp?id=45999
 
 
最近正好有空,看到不少人對VFP控制EXCEL有興趣,現將上次的「精華貼」重新整理一下,供各位愛好者參考!
 
 
1、對象的創建與關閉  *******************************
 
eole=CREATEOBJECT('Excel.application')                   && 創建Excel對像
 
eole.Workbooks.add                                       && 添加新工作簿
 
eole.Worksheets("sheet3").Activate                       && 設置第3個工作表為激活工作表
 
eole.Workbooks.Open("D:\ABC\11.xls")                     && 打開指定工作簿
 
eole.visible=.t.                                         && 顯示Excel窗口
 
eole.visible=.F.                                         && 不顯示Excel窗口
 
eole.Caption="VFP應用程序調用Microsoft Excel"             && 更改Excel標題欄
 
eole.ActiveWorkbook.SaveAs("D:\ABC\22.xls")              && 工作表另為
 
eole.ActiveWorkbook.saved=.t.                            && 放棄存盤
 
 
eole.ActiveSheet.UsedRange.Copy                          && 拷貝整個工作表
 
eole.ActiveSheet.Range("A1:E2").Copy                     && 拷貝指定區域
 
eole.WorkSheet("Sheet2").Range("A1").PasteSpecial        && 粘貼
 
 
eole.ActiveWorkbook.Save                                 && 存盤(自動存盤不提問)
 
eole.Workbooks.close                                     && 關閉工作簿
 
eole.quit                                                && 退出Excel
 
 
 
2、單元格的設置  ***********************************
 
eole.ActiveSheet.Columns("D:D").Delete                   && 刪除列
 
eole.ActiveSheet.Columns("A:B").Delete                   && 刪除列 
 
eole.ActiveSheet.Columns(1).ColumnWidth=20               && 列的寬度(單位:字符個數)
 
eole.ActiveSheet.Columns(2).ColumnWidth=30
 
eole.ActiveSheet.Columns("C:BE").ColumnWidth=9.5
 
eole.Selection.Columns.AutoFit                           && 最適合的列寬
 
 
eole.ActiveSheet.Range("b3:d3").Borders(2).Weight=3      && 指定邊框線寬度
 
                          (其中Borders參數:1-左、2-右、3-頂、4-底、5-斜、6-斜/;
 
                               LineStyle值:1與7-細實、2-細虛、4-點虛、9-雙細實線)
 
 
eole.ActiveSheet.Range("A1:BE29").Borders(1).LineStyle=1 && 設置四個邊框線條的類型
 
eole.ActiveSheet.Range("A1:BE29").Borders(2).LineStyle=1 && 設置四個邊框線條的類型
 
eole.ActiveSheet.Range("A1:BE29").Borders(3).LineStyle=1 && 設置四個邊框線條的類型
 
eole.ActiveSheet.Range("A1:BE29").Borders(4).LineStyle=1 && 設置四個邊框線條的類型
 
 
eole.ActiveSheet.Rows(1).Insert                          && 在第1行之前插入一行
 
eole.ActiveSheet.Columns(2).Insert                       && 在第2列之前插入一列
 
eole.cells(1,2).value="ABTMC"                            && 給單元格賦值
 
eole.cells(2,2).value="&BBBB"                            && 給單元格賦值
 
eole.ActiveSheet.Cells(1,4).ClearContents                && 清除單元格公式
 
 
eole.ActiveSheet.Rows(1).RowHeight=1/0.035               && 設置指定行的高度(單位:磅)
 
                                                         *(行高為1厘米,1磅=0.035厘米)
 
eole.ActiveSheet.ROWS(1).Font.Name="黑體"                && 設置字體
 
eole.ActiveSheet.ROWS(1).Font.Size=14                    && 設置字體大小
 
eole.ActiveSheet.ROWS(1).Font.Bold=.t.                   && 設置整行字體為粗體
 
eole.ActiveSheet.Cells(1,1).Font.Italic=.t.              && 設置字體為斜體
 
eole.Range("A3:BE3").select
 
eole.selection.WrapText = .T.                            && 自動換行
 
eole.selection.HorizontalAlignment=3                     && 水平方向 2左對齊,3居中,4右對齊
 
eole.selection.VerticalAlignment = 2                     && 垂直方向 1靠上 ,2居中,3靠下
 
 
eole.Range("A2:B2").select
 
eole.selection.MergeCells = .T.                          && 合併單元
 
eole.selection.HorizontalAlignment=2                     && 水平方向 2左對齊,3居中,4右對齊
 
eole.selection.VerticalAlignment = 2                     && 垂直方向 1靠上 ,2居中,3靠下
 
 
eole.Range("A5:M5").select
 
eole.Selection.Interior.ColorIndex = 34                  && 設置行顏色為[淡蘭]
 
 
eole.ActiveSheet.Range("A1:BE29").NumberFormatLocal = ;
 
"_ * #,##0.00_ ; _ * -#,##0.00_ ;_ * "+"-"+"??_ ;_ @_ "  && 指定區域內的數字顯示格式
 
 
3、打印頁面的設置  *********************************
 
eole.ActiveSheet.PageSetup.HeaderMargin=2/0.035          && 設置頁眉到頂端邊距為2厘米  
 
eole.ActiveSheet.PageSetup.FooterMargin=3/0.035          && 設置頁腳到底邊距為3厘米
 
eole.ActiveSheet.PageSetup.TopMargin=4/0.035             && 設置頂邊距為4厘米
 
eole.ActiveSheet.PageSetup.BottomMargin=4/0.035          && 設置底邊距為4厘米
 
eole.ActiveSheet.PageSetup.LeftMargin=2/0.035            && 設置左邊距為2厘米
 
eole.ActiveSheet.PageSetup.RightMargin=2/0.035           && 設置右邊距為2厘米
 
eole.ActiveSheet.PageSetup.CenterHorizontally=.t.        && 設置頁面水平居中 
 
eole.ActiveSheet.PageSetup.CenterVertically=.t.          && 設置頁面垂直居中
 
eole.ActiveSheet.PageSetup.PaperSize=8                   && 設置頁面紙張大小
 
                                                           (1-窄行8 5 11 39-寬行14 11)
 
eole.ActiveSheet.PageSetup.Orientation=2                 && 橫向
 
eole.ActiveSheet.PageSetup.PrintTitleRows="$1:$3"        && 定義固定行
 
eole.ActiveSheet.PageSetup.PrintTitleColumns="$A:$C"     && 定義固定列
 
eole.ActiveSheet.PageSetup.CenterHeader= "&14&BTMC"      && 設置頁眉
 
eole.ActiveSheet.PageSetup.CenterFooter="表__第&P頁"      && 設置頁腳
 
 
eole.Worksheets("Sheet1").Rows(18).PageBreak=1           && 在第18行之前插入分頁符
 
eole.ActiveSheet.Columns(4).PageBreak=0                  && 在第4列之前刪除分頁符
 
eole.ActiveSheet.PageSetup.PrintGridlines=.t.            && 打印單元格網線
 
 
eole.ActiveSheet.PrintPreview                            && 打印預覽工作表
 
eole.ActiveSheet.PrintOut                                && 打印輸出工作表
 
 
 
4、記錄條數的利用  *********************************
 
一般來講,EXCEL表的來源為DBF文件,列、行應該是可以預知的
 
USE 111
 
COUNT TO AAA
 
USE
 
FWQ  = "A3:M"+ALLT(STR(AAA+?))  ?為EXCEL表插入的行數
 
eole.ActiveSheet.Range(FWQ).Borders(1).LineStyle=1       && 設置四個邊框線條的類型
 
eole.ActiveSheet.Range(FWQ).Borders(2).LineStyle=1       && 設置四個邊框線條的類型
 
eole.ActiveSheet.Range(FWQ).Borders(3).LineStyle=1       && 設置四個邊框線條的類型
 
eole.ActiveSheet.Range(FWQ).Borders(4).LineStyle=1       && 設置四個邊框線條的類型
 
 
 
5、VFP下直接調用EXCEL、WORD文件  *********************************
 
DECLARE INTEGER ShellExecute IN shell32.DLL INTEGER HWND,STRING, ;
 
                        STRING lpszFile, STRING, STRING, INTEGER
 
operate= "open"
 
ShellExecute(0,operate,"C:\111.XLS",0,0,1)               && EXCEL文件
 
ShellExecute(0,operate,"C:\111.DOC",0,0,1)               && WORD文件
 
 
**************************************** _________________ 福隆昌淨水有限公司--淨水器的專家,淨水器,飲水機,濾心!!
 
 
想了解更多,您可上幸福雞湯組.找尋!!丁澐瑄.老師.
 
 
          愛作夢 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		cityhe4520
 
 
  註冊時間: 2004-09-15 文章: 28
 
  第 2 樓
  | 
		
			
				 發表於: 星期一 九月 20, 2004 6:02 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				| 你真是好好人 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		ckp6250
 
 
  註冊時間: 2004-07-30 文章: 1645
 
  第 3 樓
  | 
		
			
				 發表於: 星期四 九月 30, 2004 4:25 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				| 請問這些屬性和方法,要看什麼書才能得到呢? | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		goto-dream
 
 
  註冊時間: 2004-05-11 文章: 909
 
  第 4 樓
  | 
		 | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		ckp6250
 
 
  註冊時間: 2004-07-30 文章: 1645
 
  第 5 樓
  | 
		
			
				 發表於: 星期四 九月 30, 2004 6:14 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				| 感謝指點,這就去買來研讀啦。 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		KKKLYNN
 
 
  註冊時間: 2004-09-17 文章: 357
 
  第 6 樓
  | 
		
			
				 發表於: 星期四 一月 27, 2005 5:49 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				| 這功能已經哈很久!謝謝!剛剛已經測試完成!我會出資料都是xls,有時共用dbf,標頭就會產生文字意義不太對投遞問題產生!有了此功能我就可以輕易改善!再次謝謝啦! | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		小賴
 
 
  註冊時間: 2004-12-27 文章: 477
 
  第 7 樓
  | 
		
			
				 發表於: 星期四 一月 27, 2005 6:42 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				提供快速了解 Excel VBA 之方法
 
 
1. 利用Excel錄製巨集之功能將你要在Excel執行之指令進行錄製
 
     工具 -> 巨集 -> (開始錄製)
 
 
2. 查看巨集內容之VBA程式碼
 
     工具 -> 巨集 -> (開始研究VBA)
 
 
以上不傳偏方僅獻給有緣的狐友們 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		ericchuang
 
 
  註冊時間: 2007-11-15 文章: 10
 
  第 8 樓
  | 
		
			
				 發表於: 星期四 十一月 15, 2007 1:47 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | 小賴 寫到: | 	 		  提供快速了解 Excel VBA 之方法
 
 
1. 利用Excel錄製巨集之功能將你要在Excel執行之指令進行錄製
 
     工具 -> 巨集 -> (開始錄製)
 
 
2. 查看巨集內容之VBA程式碼
 
     工具 -> 巨集 -> (開始研究VBA)
 
 
以上不傳偏方僅獻給有緣的狐友們 | 	  
 
 
 
小賴大, 
 
      這個方法真是不得了, 解開了我很多的疑問! 您真是高手中的高手啊!    | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
  	 
	    
  	   | 
 	
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
  | 
   
  
		 |