 |
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
jp215
註冊時間: 2006-02-12 文章: 29
第 1 樓
|
發表於: 星期四 三月 29, 2007 3:16 pm 文章主題: EXCEL转VFP数据表 |
|
|
各位,请教一个初级问题,EXCEL表单转VFP数据表时为何字段为ABCD等,而不是第一行的记录,请问如何解决 |
|
回頂端 |
|
 |
garfield Site Admin

註冊時間: 2003-01-30 文章: 2160
第 2 樓
|
發表於: 星期一 四月 02, 2007 12:10 pm 文章主題: |
|
|
是用那種方式由 excel 轉成 table ? _________________ 利用>>搜尋<<的功能會比問的還要快得到答案. |
|
回頂端 |
|
 |
syntech
註冊時間: 2003-05-16 文章: 4249 來自: Taipei,Taiwan
第 3 樓
|
發表於: 星期一 四月 02, 2007 1:42 pm 文章主題: |
|
|
xls 的第一行 本來就會被 vfp 視為 欄位名稱.
用 excel 把sheet存成 dbf ,
excel 也是會把第一行當成欄位名稱.
如果檔案中第一行不是欄位名稱,
請自行調整 _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
 |
jp215
註冊時間: 2006-02-12 文章: 29
第 4 樓
|
發表於: 星期三 四月 04, 2007 9:30 pm 文章主題: |
|
|
我要用程序自动转换,用的命令是IMPORT FROM "C:\1.XLS" TYPE XL5 AS 936,OFFICE版本2002,在VFP7中转换后字段名为A,B,C等SYNTECH兄说的是手动是可以转换,GARFILED说的搜寻我搜寻EXCEL转换成DBF没找到我想要的 |
|
回頂端 |
|
 |
jp215
註冊時間: 2006-02-12 文章: 29
第 5 樓
|
發表於: 星期二 四月 10, 2007 12:02 pm 文章主題: |
|
|
我的第一行是栏位名称,但用IMPORT转变成DBF 后栏位名称变为A,B.C,D等,不知何故,请指正为谢! |
|
回頂端 |
|
 |
garfield Site Admin

註冊時間: 2003-01-30 文章: 2160
第 6 樓
|
發表於: 星期二 四月 10, 2007 5:31 pm 文章主題: |
|
|
經過測試import 的命令,
無法將excel第一行當成欄位名稱,
而且如果你將第一行皆變成欄位名稱,
那轉過來的table欄位型態皆為"字串". _________________ 利用>>搜尋<<的功能會比問的還要快得到答案. |
|
回頂端 |
|
 |
jp215
註冊時間: 2006-02-12 文章: 29
第 7 樓
|
發表於: 星期二 四月 10, 2007 6:10 pm 文章主題: |
|
|
感谢GARFIELD,感谢红狐论坛
已解决,11可能不同
with EX
.ActiveWorkbook.ActiveSheet.cells.EntireColumn.AutoFit
.ActiveWorkbook.SaveAs("C:\1.DBF", 11)
endwith |
|
回頂端 |
|
 |
syntech
註冊時間: 2003-05-16 文章: 4249 來自: Taipei,Taiwan
第 8 樓
|
發表於: 星期五 三月 06, 2015 4:00 pm 文章主題: |
|
|
garfield 寫到: | 經過測試import 的命令,
無法將excel第一行當成欄位名稱,
而且如果你將第一行皆變成欄位名稱,
那轉過來的table欄位型態皆為"字串". |
很蠢的改欄位名稱方法,請自行debug:
代碼: |
cFILENAME = "C:\DATA\IID.XLS" && 要匯入的EXCEL 檔案
IMPORT FROM &cFILENAME TYPE XLS
cALIASNAME = ALIAS()
SELECT &cALIASNAME
&& 用IMPORT 匯入時,欄位名稱是EXCEL的 COLUMN ID,
&& 就是 A~ ZZ,所以要利用 第一筆記錄的內容(欄位名稱) 修改CURSOR的欄位名稱
nFieldcount = AFIELDS(aFDARRAY) && 把欄位資訊放到"數組" aFDARRAY
GO TOP
SCATTER TO aFDARRAY01 && 把第一筆資料放到"數組" aFDARRAY01
FOR I=1 TO nFieldcount
IF !EMPTY(aFDARRAY01(I)) AND !EMPTY(aFDARRAY(I,1))
&& 利用 ALTER TABLE .... RENAME COLUMN 修改欄位名稱
STMT = 'ALTER TABLE '+cALIASNAME+' RENAME COLUMN '+ALLTRIM(aFDARRAY(I,1))+' TO '+LOWER(ALLTRIM(aFDARRAY01(I)))
&stmt
ENDIF
NEXT
&& 欄位名稱列會被當成資料匯進去,所以要刪除
GO TOP
DELETE
|
_________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
 |
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|