| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2219 人关注过本帖, 1 人收藏
标题:如何将vpf中的数据导入excel工作簿中并命名的格式
只看楼主 加入收藏
gxpxpc
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2010-11-2
结帖率:0
收藏(1)
 问题点数:0 回复次数:11 
如何将vpf中的数据导入excel工作簿中并命名的格式
请教大侠,如何将班次1.dbf、班次2.dbf导入excel工作簿(班次)的sheet1、sheet2中,或重新命名,请教导出的命令格式。
搜索更多相关主题的帖子: 工作 命名 excel 
2011-07-06 09:12
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
把數據庫結構貼出來看看

授人以渔,不授人以鱼。
2011-07-06 13:07
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
可以用VFP直接操作EXCEL的方法,逐个添加电子表,然后通过循环将相应的记录数据写入电子表中。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2011-07-07 07:31
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏(1)
得分:0 
下面是将当前工作区中打开的表转换到电子表格的程序,楼主可以参考。
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)            &&字符字段则截去尾部空格
                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


活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2011-07-07 07:41
gxpxpc
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2010-11-2
收藏
得分:0 
谢谢hu9jj大侠,你的程序很好用,只是导出的数据保存在book1的sheet1中, 第二个导出的数据保存在book2的sheet1中,能否将第二次导出数据并入book1的sheet2中或sheet3或sheet4中,再次感谢!
2011-07-07 09:39
gxpxpc
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2010-11-2
收藏
得分:0 
TonyDeng大侠,你好。VPF中有个拷贝命令,如打开一个数据gg1.dbf,将他导出成电子表,命令为COPY TO d:\gg1.xls TYPE XL5,生成gg1.xls,能否在打开第二个数据gg2.dbf,用此命令导出到gg1.xls中,或用其他方法。表示感谢!
2011-07-07 09:56
hgfeng1984
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:5
帖 子:139
专家分:513
注 册:2006-3-26
收藏
得分:0 
2011-07-07 10:44
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
Excel 對象 oExcel 指定Sheet的命令是 oExcel.WorkSheets(n).Activate
既可用序號n(整數),也可用表名(字符串)。要對哪個Sheet讀寫數據,就用上面的指令切換當前工作表。從數據庫往Sheet寫數據如此,Sheet之間的數據互相讀寫也是如此。

記住:每個Book相當於VFP的DBC數據庫容器,每個Sheet相當於DBC容器中的table表!

授人以渔,不授人以鱼。
2011-07-07 14:02
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
4楼的程序仅供参考,起码要增加下列内容:
1、选定DBF表并在适当的工作区中打开
2、为电子表格添加表(sheet)、并为表重命名
3、将生成的电子表格文件保存

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2011-07-07 15:58
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
程序代码:
USE new IN 0
dbf2sheet("new", ADDBS(JUSTPATH(FULLPATH("new.dbf"))) + "Export.xlsx", "導出數據5")
RETURN 

*------------------------------------
* 將數據表導出到Excel表格
* 參數:tcAlias -- 數據表工作區別名
*       tcBook  -- Excel 工作簿文件名(帶全路徑、擴展名)
*       tcSheet -- 工作表名稱(自動新增,不可與工作簿中已有Sheet重名)
*------------------------------------
PROCEDURE dbf2sheet(tcAlias AS Character, tcBook AS Character, tcSheet AS Character)
    LOCAL loExcel AS Object
    LOCAL lnIndex AS Integer, lnRow AS Integer, lnCol AS Integer, leValue
    
    WAIT "正在導出數據,請稍候……" WINDOW NOWAIT 
    loExcel = CREATEOBJECT("Excel.Application")
    WITH loExcel
        IF !FILE(tcBook)
            .WorkBooks.Add
        ELSE 
            .WorkBooks.Open(tcBook)
            .Sheets.Add
        ENDIF 
        .Sheets(1).Name = tcSheet
        .WorkSheets(tcSheet).Activate
        SELECT (tcAlias)
        FOR lnIndex = 1 TO FCOUNT(tcAlias)
            .Cells(1,lnIndex).Value = FIELD(lnIndex)
        NEXT 
        .Rows(1).Font.Bold = .T.
        .Rows(1).HorizontalAlignment = 3
        lnRow = 2
        SCAN ALL 
            FOR lnCol = 1 TO FCOUNT(tcAlias)
                leValue = EVALUATE(FIELD(lnCol))
                DO CASE
                    CASE VARTYPE(leValue) == "D"
                        leValue = DTOC(leValue)
                    CASE VARTYPE(leValue) == "L"
                        leValue = IIF(leValue, '1', '0')
                ENDCASE 
                .Cells(lnRow, lnCol).Value = leValue
            NEXT 
            lnRow = lnRow + 1
        ENDSCAN 
        FOR lnIndex = 1 TO FCOUNT(tcAlias)
            .Columns(lnIndex).EntireColumn.AutoFit
        NEXT 
        IF !FILE(tcBook)
            .ActiveWorkBook.SaveAs(tcBook)
        ELSE 
            .ActiveWorkBook.Save
        ENDIF 
        .Quit
    ENDWITH 
    RELEASE loExcel
    WAIT CLEAR 
    
ENDPROC 


[ 本帖最后由 TonyDeng 于 2011-7-8 02:47 编辑 ]

授人以渔,不授人以鱼。
2011-07-08 02:46
快速回复:如何将vpf中的数据导入excel工作簿中并命名的格式
数据加载中...
 
   



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

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