| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 857 人关注过本帖
标题:我是新手,想编个程序简化工作,征求各位大侠建议
取消只看楼主 加入收藏
ll3316693
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-12-5
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
我是新手,想编个程序简化工作,征求各位大侠建议
我在办公室工作,现在的一项工作是把各部门报上来的表格(word、excel他们都有用的)汇成一个总表(excel)。时间长了,有些烦,决定自己用VF来编个程序帮忙。思路如下:
第一步,试图自动改变各部门报上来的表的样式,以符合转化为DBF的要求。
第二步,通过表的操作,将符合要求的数据汇总
第三步,自动形成符合要求的电子表格。
现在准备先走第一步,各位大侠们,提点建议好吗,小弟是新手,请多指教。
搜索更多相关主题的帖子: 征求 
2010-12-05 12:19
ll3316693
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-12-5
收藏
得分:0 
小弟多处查找,找到一个代码,很好用,可惜,因各部门报上来表结构不同,导致无法使用,所以才想到用啥法子自动调整表的结构,希望大侠们给些建议。
close all
set safety off
set default to 'e:\'&&设置默认目录
messagebox('请选择要导入的XLS文件'+chr(13)+;
'注意表格不要有格式,首行的命名符合规则';
+chr(13)+'只把第一行做为字段','提示')
ss=getfile('xls')&&打开选择文件对话框,并赋值
if isblank(ss)
return
endif
myexcel=createobject('excel.application')&&创建EXCEL对象
*myexcel.visible=.t.
bookexcel=myexcel.workbooks.open(ss)&&打开选择的文件
i=1
***************获得表的可用sheet*************************************
for each omyvar in myexcel.sheets
    dimension a(i)
    a(i)=omyvar.name
    i=i+1
next omyvar
******************************************************
nrows=bookexcel.worksheets(a(1))&&设置第一个表为工作表
UsedRange =nrows.UsedRange&&设置工作区域
***************把第一行的数据赋值给数组b,一会删除第一行,便于导入*****
ma=usedrange.columns.count&&返回列的总数
dimension b(ma)
for i=1 to ma
b(i)=myexcel.cells(1,i).value
next
******************************************************
myexcel.Worksheets(a(1)).Activate
myexcel.activesheet.rows(1).select&&选中第一行
myexcel.Selection.EntireRow.Delete&&删除选中的行
myexcel.Worksheets(a(1)).select
*********检查d:\hh.xls是否存在,若存在,删除***********
IF FILE('d:\hh.xls')
DELETE FILE d:\hh.xls
ENDIF
*********************************
myexcel.ActiveWorkbook.SaveAs('d:\hh.xls')&&文件另存为
myexcel.ActiveWorkbook.saved=.t.&&不保存修改
myexcel.workbooks.close&&关闭工作区不提示保存
myexcel.quit&&excel退出
*release myexcel
*******************
import from d:\hh.xls type xl5&&导入到默认目录下的hh.dbf表中
DELETE FILE d:\hh.xls&&删除表
***********给表字段重命名**************************
use hh
ma=fcount()
dimension c(ma)
for la=1 to ma
c(la)=field(la)
next
for la=1 to ma
?la,c(la),b(la)
alter table hh rename &c(la) to &b(la)
next
*****************************************
messagebox('已成功将表导入到E:\hh.dbf','提示')
close all
2010-12-05 12:25
ll3316693
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-12-5
收藏
得分:0 
不好整啊,咱不是官啊,人家不按你的要求报表啊
2010-12-07 10:50
ll3316693
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-12-5
收藏
得分:0 
小弟有个新思路,就是先把电子表格转存为DBF,然后用字段寻找我需要内容在的那一行,然后用alter命令把所需内容那一行改为字段名,其上的行删去。大侠们,觉得此思路可行吗?
2010-12-07 11:09
快速回复:我是新手,想编个程序简化工作,征求各位大侠建议
数据加载中...
 
   



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

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