| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2500 人关注过本帖, 3 人收藏
标题:将当前工作区中打开的表自动转换为EXCEL文件
只看楼主 加入收藏
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
结帖率:99.55%
收藏(3)
已结贴  问题点数:20 回复次数:37 
将当前工作区中打开的表自动转换为EXCEL文件
***这是自动对当前工作区中打开的表转换为EXCEL的程序
IF USED()
    NEWEXCEL=CREATEOBJECT("EXCEL.APPLICATION")    &&建立EXCEL文件
    WITH NEWEXCEL
        .WORKBOOKS.ADD                            &&添加新EXCEL表
        nFd=AFIELDS(aTitl)                        &&取总字段数及各字段名、属性等
        FOR I = 1 TO nFd
            .CELLS(1,I)=ALLTRIM(aTitl(I,1))       &&将数组中的标题写入第一行
        ENDFOR
    ENDWITH
    GOTO TOP
    nHbh=2
    ON ERROR .CELLS(nHbh,I)="---"
    DO WHILE !EOF()                               &&开始对记录的循环
        FOR I = 1 TO nFd                          &&对记录中的每个字段进行处理
            cFild=ALLTRIM(aTitl(I,1))             &&组成“表名.字段名”
            cFild=&cFild
            IF VARTYPE(cFild)="N"
                IF cFild#0
                    NEWEXCEL.CELLS(nHbh,I)=cFild  &&数值不为零则写入,
                ENDIF
            ELSE
                IF VARTYPE(cFild)="C"
                    cFild=RTRIM(cFild)            &&字符字段则截去尾部空格
                    NEWEXCEL.CELLS(nHbh,I).NumberFormatLocal="@"&&设置单元格属性为文本
                ENDIF
                NEWEXCEL.CELLS(nHbh,I)=cFild
            ENDIF
        ENDFOR
        nHbh=nHbh+1
        SKIP
    ENDDO
    MESSAGEBOX("数据导出已经完成,请注意保存文件!",64,"操作提示")
    NEWEXCEL.ACTIVESHEET.PAGESETUP.ORIENTATION=1
    NEWEXCEL.VISIBLE=.T.                          &&显示excel表以便继续编辑和保存
    ON ERROR
ENDIF
RETURN
搜索更多相关主题的帖子: 工作区 EXCEL 
2012-04-27 08:34
muyubo
Rank: 9Rank: 9Rank: 9
来 自:山东莱芜
等 级:蜘蛛侠
威 望:3
帖 子:471
专家分:1017
注 册:2011-3-6
收藏
得分:3 
好东西,有用
2012-04-27 09:17
lygcw9603
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:233
专家分:357
注 册:2006-8-27
收藏
得分:3 
回复 楼主 hu9jj
请问版主:对不同类型数据的转换如何操作啊,如日期型。
2012-04-27 09:34
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2214
专家分:3882
注 册:2007-4-27
收藏
得分:3 
以下是引用hu9jj在2012-4-27 08:34:44的发言:

***这是自动对当前工作区中打开的表转换为EXCEL的程序
IF USED()
    NEWEXCEL=CREATEOBJECT("EXCEL.APPLICATION")    &&建立EXCEL文件
    WITH NEWEXCEL
        .WORKBOOKS.ADD                            &&添加新EXCEL表
        nFd=AFIELDS(aTitl)                        &&取总字段数及各字段名、属性等
        FOR I = 1 TO nFd
            .CELLS(1,I)=ALLTRIM(aTitl(I,1))       &&将数组中的标题写入第一行
        ENDFOR
    ENDWITH
    GOTO TOP
    nHbh=2
    ON ERROR .CELLS(nHbh,I)="---"
    DO WHILE !EOF()                               &&开始对记录的循环
        FOR I = 1 TO nFd                          &&对记录中的每个字段进行处理
            cFild=ALLTRIM(aTitl(I,1))             &&组成“表名.字段名”
            cFild=&cFild
            IF VARTYPE(cFild)="N"
                IF cFild#0
                    NEWEXCEL.CELLS(nHbh,I)=cFild  &&数值不为零则写入,
                ENDIF
            ELSE
                IF VARTYPE(cFild)="C"
                    cFild=RTRIM(cFild)            &&字符字段则截去尾部空格
                    NEWEXCEL.CELLS(nHbh,I).NumberFormatLocal="@"&&设置单元格属性为文本
                ENDIF
                NEWEXCEL.CELLS(nHbh,I)=cFild
            ENDIF
        ENDFOR
        nHbh=nHbh+1
        SKIP
    ENDDO
    MESSAGEBOX("数据导出已经完成,请注意保存文件!",64,"操作提示")
    NEWEXCEL.ACTIVESHEET.PAGESETUP.ORIENTATION=1
    NEWEXCEL.VISIBLE=.T.                          &&显示excel表以便继续编辑和保存
    ON ERROR
ENDIF
RETURN
红色的那句,我理解不了,请求楼主注一下中文的说明。谢谢

只求每天有一丁点儿的进步就可以了
2012-04-27 11:53
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2214
专家分:3882
注 册:2007-4-27
收藏
得分:0 
IF USED()
   nrecc=RECCOUNT()
   NEWEXCEL=CREATEOBJECT("EXCEL.APPLICATION")    &&建立EXCEL文件
    WITH NEWEXCEL
        .WORKBOOKS.ADD                            &&添加新EXCEL表
        nFd=AFIELDS(aTitl)                        &&取总字段数及各字段名、属性等
        FOR I = 1 TO nFd
            .CELLS(1,I)=ALLTRIM(aTitl(I,1))       &&将数组中的标题写入第一行
        ENDFOR
    ENDWITH
    GOTO TOP
    nHbh=2
    ON ERROR .CELLS(nHbh,I)="---"
    DO WHILE !EOF()                               &&开始对记录的循环
   WAIT WINDOW '共有'+ALLTRIM(STR(nrecc))+'条记录,正在转换第'+ALLTRIM(STR(RECNO()))+'条记录...' NOWAIT   
        FOR I = 1 TO nFd                          &&对记录中的每个字段进行处理
            cFild=ALLTRIM(aTitl(I,1))             &&组成“表名.字段名”
            cFild=&cFild
            IF VARTYPE(cFild)="N"
                IF cFild#0
                    NEWEXCEL.CELLS(nHbh,I)=cFild  &&数值不为零则写入,
                ENDIF
            ELSE
                IF VARTYPE(cFild)="C"
                    cFild=RTRIM(cFild)            &&字符字段则截去尾部空格
                    NEWEXCEL.CELLS(nHbh,I).NumberFormatLocal="@"&&设置单元格属性为文本
                ENDIF
                NEWEXCEL.CELLS(nHbh,I)=cFild
            ENDIF
        ENDFOR
        nHbh=nHbh+1
        SKIP
    ENDDO
    MESSAGEBOX("数据导出已经完成,请注意保存文件!",64,"操作提示")
    NEWEXCEL.ACTIVESHEET.PAGESETUP.ORIENTATION=1
    NEWEXCEL.VISIBLE=.T.                          &&显示excel表以便继续编辑和保存
    ON ERROR
ELSE
  MESSAGEBOX('当前工作区没有打开的表!',64,'系统提示:')

ENDIF
RETURN

我给加了几句

[ 本帖最后由 wengjl 于 2012-4-27 13:07 编辑 ]

只求每天有一丁点儿的进步就可以了
2012-04-27 11:56
lygcw9603
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:233
专家分:357
注 册:2006-8-27
收藏
得分:0 
回复 5楼 wengjl
学习了
2012-04-27 12:16
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
以下是引用wengjl在2012-4-27 11:53:10的发言:

红色的那句,我理解不了,请求楼主注一下中文的说明。谢谢
如果在转换过程中出现转换不了的内容(如图片文件等)就用“--”代替。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2012-04-27 16:10
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
以下是引用lygcw9603在2012-4-27 09:34:13的发言:

请问版主:对不同类型数据的转换如何操作啊,如日期型。
日期型可以直接转换的。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2012-04-27 16:11
lygcw9603
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:233
专家分:357
注 册:2006-8-27
收藏
得分:0 
回复 8楼 hu9jj
转换后的类型是日期型,还是字符型啊。
2012-04-27 16:42
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2214
专家分:3882
注 册:2007-4-27
收藏
得分:0 
以下是引用hu9jj在2012-4-27 16:10:22的发言:

如果在转换过程中出现转换不了的内容(如图片文件等)就用“--”代替。
谢谢

只求每天有一丁点儿的进步就可以了
2012-04-27 17:42
快速回复:将当前工作区中打开的表自动转换为EXCEL文件
数据加载中...
 
   



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

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