  | 
				VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.   
				 | 
			 
		 
		 
	
		| 上一篇主題 :: 下一篇主題   | 
	 
	
	
		| 發表人 | 
		內容 | 
	 
	
		willy
 
 
  註冊時間: 2005-10-27 文章: 3
 
  第 1 樓
  | 
		
			
				 發表於: 星期五 十月 05, 2007 3:52 pm    文章主題: 請問Foxpro 讀入 Excel 的問題? | 
				     | 
			 
			
				
  | 
			 
			
				不好意思各位我從網站內學到讀Excel的方法 為下
 
*------ 意欲讀取之 EXCEL資料檔 & 所在目錄 
 
STORE ALLTRIM(THISFORM.TEXT1.VALUE) TO _PATH 
 
STORE ALLTRIM(SUBSTR(_PATH,RAT(’\’,_PATH)+1,LEN(_PATH))) TO PATH_FILE 
 
STORE ALLTRIM(LEFT(_PATH,RAT(’\’,_PATH)+-1)) TO PATH_END 
 
lcFile = PATH_FILE 
 
lcPath = PATH_END 
 
 
   *------ 
 
   lcFullPath = FORCEPATH( lcFile, lcPath ) 
 
   if .not. file(lcFullPath) 
 
      lcFullPath = getFile(’XLS’) 
 
      lcFile = justFName( lcFullPath ) 
 
      lcPath = justPath( lcFullPath ) 
 
   endif 
 
 
   if .not. file(lcFullPath) 
 
      messageBox( ’Not Found File:’+ chr(13)+ lcFullPath + chr(13)+ ’這個Excel檔案’ ) 
 
      RETURN 
 
   endif 
 
   *------ 
 
 
 
*------ Connection   
 
 
lcCnStr   = [FIL=excel 5.0;] ; 
 
   + [DBQ=]+lcFile+[;DefaultDir=]+lcPath+[;] ; 
 
   + [Driver={Microsoft Excel Driver (*.xls)};DriverId=790] ; 
 
   + [MaxBufferSize=2048;PageTimeout=5;] ; 
 
 
#Define bTest_ .f. 
 
   if bTest_ 
 
      nCn = SQLSTRINGCONNECT() 
 
      *!* 放到剪貼簿,[Ctrl+V]取出 
 
      _ClipText = SQLGETPROP( nCn, ”ConnectString” ) 
 
*      messageBox( _ClipText ) 
 
   else 
 
      *!* ”DispWarnings”=.F. 頂著用 
 
      * = SQLSETPROP( 0, ”DispWarnings”, .F. ) 
 
      nCn = SQLSTRINGCONNECT( lcCnStr ) 
 
      * = SQLSETPROP( 0, ”DispWarnings”, .T. ) 
 
 
   endif 
 
 
 
*------ GET TABLES by TABLE_TYPE--SQLTABLES(,[’TABLE’, ’VIEW’, ’SYSTEM TABLE’],)   
 
 
   SQLTABLES( nCn , [] , ’_Tables’ ) 
 
 
   KEYBOARD ”{CTRL+F10}” 
 
 
   LOCAL lcSQL, lcCursor, lcTableName, lnError 
 
 
*   SCAN 
 
 
      lcSQL = [select * from ”] + trim(table_name) + [”] 
 
      lcsqlx = [select * from ] + trim(table_name) 
 
* lcSQL = [select top 100 * from ”] + trim(table_name) + [”] 
 
*      wait window ’WAIT... ’+ lcSQLX nowait at 0,0 
 
      wait window ’WAIT............................................’ nowait at 0,0 
 
      lcCursor = strTran( strTran( trim(table_name), ’ ’, ’_’ ) , ’$’ , ’_’ ) 
 
      *  lcTableName = ’c:\temp\_’+ lcCursor 
 
      lnError = SQLEXEC( nCn, lcSQL,’temp1x’) 
 
      KEYBOARD ”{CTRL+F10}”       
 
 
select * from temp1x into DBF test 
 
 
以上的方法可以正常讀到資料 
 
但如果Excel資料的某一欄位第一筆資料為文字型態第二筆資料為數值型態 
 
以上的方法第一筆可以正常讀到第二筆卻為空白 
 
請問是否有方法可以解決 
 
謝謝!! | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 2 樓
  | 
		
			
				 發表於: 星期五 十月 05, 2007 4:20 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				沒.
 
 
除非你想辦法先檢查型態並作適當轉換 _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
  	 
	    
  	   | 
 	
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
  | 
   
  
		 |