| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2956 人关注过本帖
标题:请教:导入EXCEL问题
只看楼主 加入收藏
fhxycom
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2008-11-5
收藏
得分:0 
总之VF有很强的操作EXCL的能力。?????
   初学,一时不明白,能否具体的作一个VF操作EXCL的的讲解,列出命令一时不好理解,最好有具体的实例,谢谢!!!!
2008-11-06 14:53
nhygm888
Rank: 2
等 级:论坛游民
威 望:1
帖 子:186
专家分:42
注 册:2008-7-20
收藏
得分:0 
set talk off
set Default to &mypath\导出数据
oExcelSheet = GETOBJECT("","Excel.Sheet") && 产生Excel对象
IF NOT TYPE("oExcelSheet") = "O"
=MESSAGEBOX("Excel对象创建失败,程序将中止!", 16, "Error")
RETURN
ENDIF
outfilename=putfile('输出结果','&bm','xls')

oExcelApp = oExcelSheet.Application
oExcelApp.Workbooks.Add()
oExcelApp.ActiveWindow.WindowState=2
oSheet = oExcelApp.ActiveSheet
oSheet.visible=.t.
if used("cx")
sele cx
else
use &mypath/cx
endi
nFldCount = AFIELDS(aFldList,"cx")
FOR i = 1 TO nFldCount
oSheet.Cells(3,i).Value = aFldList[i, 1]

cChrStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
cColumn = SUBSTR(cChrStr, INT((i-1)/26), 1) + SUBSTR(cChrStr, IIF(MOD(i, 26)= 0, 26, MOD(i, 26)) , 1)
*oSheet.Columns("&cColumn").Select
if aFldList[i, 1]="N"
oSheet.Columns(cColumn + ":" + cColumn).NumberFormatLocal="0.00" &&设置为字符型内容
ELSE
oSheet.Columns(cColumn + ":" + cColumn).NumberFormatLocal="@" &&设置为字符型内容
endi
oSheet.Columns(cColumn + ":" + cColumn).ShrinkToFit =.t.
ENDFOR
cRecc = STR(RECCOUNT("cx"))
SCAN
thisform.caption="讷河市社保局友情提供  正在处理第"+allt(str(recno()))+'条.总数:'+allt(cRecc)
FOR i = 1 TO nFldCount
vValue = .NULL.
IF AT(aFldList[i, 2], "CDLMNFIBYT") = 0
LOOP
ENDIF
cFldName = aFldList[i, 1]
vValue = EVALUATE(cFldName)
DO CASE
CASE aFldList[i, 2] = "C" && 字符/字符串
vValue = TRIM(vValue)
CASE aFldList[i, 2] = "D" && 日期
vValue = DTOC(vValue)
CASE aFldList[i, 2] = "T" && 日期时间
vValue = TTOC(vValue)
CASE INLIST(aFldList[i, 2], "N", "F", "I", "B", "Y") && 数值
CASE aFldList[i, 2] = "L" && 逻辑
CASE aFldList[i, 2] = "M" && 备注型
OTHERWISE
vValue = .NULL.
ENDCASE

IF VARTYPE(vValue) = "C" AND EMPTY(vValue)
LOOP
ENDIF
IF NOT ISNULL(vValue)
oSheet.Cells(RECNO("cx")+3, i).Value = vValue
ENDIF
ENDFOR
ENDSCAN
cChrStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
FOR i = 1 TO nFldCount
cColumn = SUBSTR(cChrStr, INT((i-1)/26), 1) + SUBSTR(cChrStr, IIF(MOD(i, 26)= 0, 26, MOD(i, 26)) , 1)
oSheet.Columns(cColumn + ":" + cColumn).ColumnWidth = 12
IF aFldList[i, 2] = "M"
oSheet.Columns(cColumn + ":" + cColumn).WrapText = .F.
ENDIF
ENDFOR
oExcelApp.ActiveWorkbook.SaveAs(outfilename)
oExcelApp.ActiveWorkbook.Close(.F.)
oExcelApp.ActiveWorkbook.Close(.F.)
oExcelApp.Quit
oExcelSheet = .NULL.
oExcelApp = .NULL.
*WAIT CLEAR
thisform.caption="讷河市社保局友情提供"
=MESSAGEBOX("导出完毕!总共导出:"+allt(cRecc)+"人。   ",64, "OK")
2008-11-06 17:41
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
看了大家的帖子,也试着将数据导出到EXCEL文件,但如何从EXCEL读回指定单元格的数据呢?

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2008-11-06 21:37
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
?eole.workbooks(1).worksheets(1).cells(1,1).Value  &&显示第1列第1行的数据
eole.workbooks(1).worksheets(1).cells(1,1).Value=1  &&将数据1写入第1列第1行

[[it] 本帖最后由 Tiger5392 于 2008-11-6 22:02 编辑 [/it]]

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2008-11-06 22:01
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
谢谢!我试试看。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2008-11-06 22:12
花花公子
Rank: 4
等 级:贵宾
威 望:10
帖 子:609
专家分:0
注 册:2007-6-7
收藏
得分:0 
[bo][un]Tiger5392[/un] 在 2008-11-6 22:01 的发言:[/bo]

?eole.workbooks(1).worksheets(1).cells(1,1).Value  &&显示第1列第1行的数据
eole.workbooks(1).worksheets(1).cells(1,1).Value=1  &&将数据1写入第1列第1行

反过来没试过。。。。

[glow=150,blue,2] 该珍惜的,好好把握;该舍去的,不再留恋; 该执著的,永不怨悔;该面对的,绝不逃避。[/glow]
2008-11-07 14:42
ibmlang_002
Rank: 5Rank: 5
来 自:浙江-嘉兴
等 级:贵宾
威 望:18
帖 子:437
专家分:176
注 册:2008-8-30
收藏
得分:0 
写excel和读excel道理一样

VFP
2008-11-07 18:50
快速回复:请教:导入EXCEL问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034724 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved