| 上一篇主題 :: 下一篇主題   | 
	
	
	
		| 發表人 | 
		內容 | 
	
	
		mainsoft
 
 
  註冊時間: 2013-04-25 文章: 12
 
  第 1 樓
  | 
		
			
				 發表於: 星期四 八月 17, 2017 2:44 pm    文章主題: vfp 如何讀取已開啟的 excel | 
				     | 
			 
			
				
  | 
			 
			
				vfp 如何讀取已開啟的 excel 資料
 
[ 已開啟的 ]
 
不是vfp 開的 [eole=CREATEOBJECT("Excel.application")]
 
[eole.Workbooks.open("C:\TESTVFP\TEST1.XLS")]
 
而是 user 自行已開啟的 excel | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		goodnight
 
  
  註冊時間: 2008-10-13 文章: 473 來自: 台南市
  第 2 樓
  | 
		
			
				 發表於: 星期五 八月 18, 2017 11:11 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				我個人猜想的程序是, 先偵測看看, 檔案有沒有被開啟, 有的話, 直接切換到excel 就好
 
如果說是要讀取內容的話, 我就沒經驗了 _________________ 希望有更多人來參與
 
VFP wiki - 需要大家一起完成的VFP電子書與FAQ | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		小賴
 
 
  註冊時間: 2004-12-27 文章: 477
 
  第 3 樓
  | 
		
			
				 發表於: 星期五 八月 18, 2017 11:50 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				oExcel = GETOBJECT(, "Excel.Application")
 
 
 
TRY
 
  oExcel = GETOBJECT(, "Excel.Application")
 
CATCH TO oError
 
  IF oError.ErrorNo = 1426                        
 
     oExcel = CREATEOBJECT("EXCEL.APPLICATION")
 
  ENDIF
 
ENDTRY     
 
 
 
oSheet = oExcel.ActiveSheet
 
oSheet.Cells(1, 1).Value = "自己試試看" | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 4 樓
  | 
		
			
				 發表於: 星期五 八月 18, 2017 11:53 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				勸樓主放棄這種想法.   XD _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙
   syntech 在 星期五 八月 18, 2017 4:48 pm 作了第 1 次修改 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		mainsoft
 
 
  註冊時間: 2013-04-25 文章: 12
 
  第 5 樓
  | 
		
			
				 發表於: 星期五 八月 18, 2017 2:09 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				謝謝4樓
 
這是必須要解決的問題
 
!!!!!!!!!!!! | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 6 樓
  | 
		
			
				 發表於: 星期五 八月 18, 2017 4:46 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				我覺得這個問題基本上是"用vfp寫一個遊戲外掛程式"的等級.   Orz
 
 
也就是你要先用 win32api findwindows 找出excel的 HWND,
 
再利用 WIN32API SENDMESSAGE 操作EXCEL,
 
用 WIN32API GETMESSAGE或WIN32 API PEEKMESSAGE 或其他函式取得資料,
 
但你也無法確定該從哪邊或如何取回你真正要的資料,
 
 
所以我覺得請使用者改好後,再由VFP重新開啟EXCEL檔比較簡單.
 
 
 
 
----
 
以前有個站友[行者孫]曾經做過這樣的程式,
 
不過他不是搞EXCEL這麼複雜的東西.
 
目前行者孫的BLOG好像已經掛了 _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		小賴
 
 
  註冊時間: 2004-12-27 文章: 477
 
  第 7 樓
  | 
		
			
				 發表於: 星期五 八月 18, 2017 5:56 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				oExcel = GETOBJECT(, "Excel.Application") 
 
不就是取得開啟中的Excel物件
 
oSheet = oExcel.ActiveSheet
 
取的作用中的Sheet | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		ckp6250
 
 
  註冊時間: 2004-07-30 文章: 1645
 
  第 8 樓
  | 
		
			
				 發表於: 星期五 八月 18, 2017 8:24 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				我同意goodnight和syntech兩位大大的看法,
 
Excel畢竟較屬於單機作業,同時開啟不好控制,
 
若是我,會先偵測是否唯讀?用 fopen 去偵測,
 
若已被user開啟中,我就跳出訊息,看看要怎麼辦! | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 9 樓
  | 
		
			
				 發表於: 星期五 八月 18, 2017 10:31 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				原來我看錯小賴兄的命令.  <(_._)>
 
不過我沒試過GETOBJECT
 
不知道會發生什麼事.           
 
 
下次有機會再試試看. _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		215001
 
 
  註冊時間: 2003-06-11 文章: 393
 
  第 10 樓
  | 
		
			
				 發表於: 星期六 八月 19, 2017 9:54 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				我也看錯了
 
 
原來還有小賴兄的這種方法,收錄下來 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		mainsoft
 
 
  註冊時間: 2013-04-25 文章: 12
 
  第 11 樓
  | 
		
			
				 發表於: 星期六 八月 19, 2017 11:27 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				謝謝各樓的大大先進
 
這是個很耗時的問題
 
30年經驗也讓我頭痛
 
1.要取遠端機台的資料(機台是 PLC 生產機台)
 
2.機台不開放任何訊息及資料規格給你,只有一個RJ45 port
 
3.沒有技術規格給你
 
4.客戶只會vfp(所以限定用vfp)
 
5.限時要完工
 
6.PLC的資料是會隨機器動作而改變值
 
7.要把所有的數據變成DBF(隨機器動作而改變值)
 
8.為何要用DBF? 是為了他們要有自己的分析作業
 
 
重點來了,大部份我都做好了,就只差這個而已 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		mainsoft
 
 
  註冊時間: 2013-04-25 文章: 12
 
  第 12 樓
  | 
		
			
				 發表於: 星期六 八月 19, 2017 11:39 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				謝謝 小賴兄   
 
已測試ok
 
非常謝謝
 
5天大致可以了解了vfp,也可以用vfp做程式了, 其實vfp很好用,真的很好用
 
可以再問一個問題嗎?
 
excel 中有很多 Sheet 
 
   
 
要如何取指定的Sheet | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		mainsoft
 
 
  註冊時間: 2013-04-25 文章: 12
 
  第 13 樓
  | 
		
			
				 發表於: 星期六 八月 19, 2017 11:44 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				哈哈!!!!!
 
已經都ok了
 
完工交差
 
收錢
 
謝謝各位啦 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		goodnight
 
  
  註冊時間: 2008-10-13 文章: 473 來自: 台南市
  第 14 樓
  | 
		
			
				 發表於: 星期五 八月 25, 2017 10:13 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | mainsoft 寫到: | 	 		  謝謝 小賴兄   
 
已測試ok
 
非常謝謝
 
5天大致可以了解了vfp,也可以用vfp做程式了, 其實vfp很好用,真的很好用
 
可以再問一個問題嗎?
 
excel 中有很多 Sheet 
 
   
 
要如何取指定的Sheet | 	  
 
 
如果sheet名稱是固定的, 而且一定會存在, 就能直接指定, 不然就要先判斷 sheet 有沒有存在
 
 
例 sheet = oleExcel.Worksheets(SheetName)
 
應該是這樣
 
 
如果 vfp 可以繼續維護成新版的話, 會更好 _________________ 希望有更多人來參與
 
VFP wiki - 需要大家一起完成的VFP電子書與FAQ | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		 |