主题:请问各位朋友:能不能追加纪录到已有的xls表里?
coffeenight
[专家分:230] 发布于 2010-04-28 14:46:00
请问各位朋友:
copy to aa type xl5
如果 xls表已经存在,能不能在已有的xls表的纪录最后自动空出2行,然后追加纪录
谢谢!
最后更新于:2010-04-28 14:50:00
回复列表 (共21个回复)
11 楼
coffeenight [专家分:230] 发布于 2010-04-30 10:32:00
唉,急用,求解中
12 楼
wdzhx [专家分:0] 发布于 2010-04-30 13:33:00
您好!
我是爱好者,ELX到DBF很想搞明白,看了你的代码后,还是云雾之中,能否把每条的意思写出来,实现什么目的,谢谢!
您的代码:if !file("aa.xls") then
copy to aa type xl5
else
引用:
aa1=fullpath("aa.xls")
aa2=fullpath(sys(2023)+"\aa~tmp.xls")
if file(aa2)
delete file (aa2)
endif
copy to (aa2) type xl5
xls1=createobject("excel.application")
xls2=xls1.Workbooks.Open(aa1)
xls3=xls1.Workbooks.Open(aa2)
xls3.sheets(1).rows("2:"+ALLTRIM(STR(xls3.sheets(1).usedrange.rows.count))).copy
xls2.sheets(1).cells(xls2.sheets(1).usedrange.rows.count+2,1).PasteSpecial(-4163)
xls2.save
xls1.quit
delete file (aa2)
endif
发到我的邮箱吧:WD_ZHX@163.COM
不胜感谢!
13 楼
wdzhx [专家分:0] 发布于 2010-04-30 14:01:00
您好!
新手,能否将你的代码与引用部分的语句注释一下,写上每步要达到的目的、意图,不然我想学,但看起来还是云里雾里,发到我邮箱最好]wd_zhx@163.com,不胜感激
14 楼
dbfox [专家分:490] 发布于 2010-04-30 14:46:00
别人都在忙着讨论怎样解决一个问题时,我却在想这个问题有没有解决的必要?能否用另外的思路解决问题?有没有别的办法能够达到同样的目的?
我总觉得给一个已有的EXCEL表追加几行似乎不具有普遍性,为此专门去研究代码的编写似乎不值得。因为程序是用来解决一类问题的,对于个别问题(形不成类的),似乎用不着编程。如果楼主真的需要经常性地给一个已存在的EXCEL表追加记录,为什么不干脆在一个DBF表中把所有要加的记录都加完,最后再copy to aa type xl5呢?
之所以要采用VFP,EXCEL,以及WORD等混合编程,目的是要发挥每种应用软件的长处,协调工作,完成既定的任务。就像羊是用来吃草的,老虎是用来吃鸡的,如果我们把老虎圈在笼子里,而挖空心思研究如何能使羊去吃鸡岂不很搞笑?
15 楼
coffeenight [专家分:230] 发布于 2010-04-30 15:06:00
回 爱好者: 你可以在baidu 搜索一下关键词: VFP 全面控制EXLCEL
已经实现追加了
我现是想在我想在导出的xls表的字段的上一行添加说明性文字,应该怎么修改?
我也想过在DBF表里追加后再导出成XLS,问题是DBF表 ,没办法把说明性文字插入在字段之上啊
16 楼
moz [专家分:37620] 发布于 2010-04-30 19:12:00
.value= 单元格,注意到底在操作哪一个表是否明确
.AddComment 批注
.Comment.Text("")
17 楼
重磅炸蛋 [专家分:80] 发布于 2010-05-01 08:56:00
很同意14楼的说法,应该用VFP完成数据的处理,再转成XLS文件并处理格式,这样较容易实现数据格式的统一。硬要用XLS文件存贮数据,还不如直接用EXCEL来打开处理来得快。
18 楼
vfp_boy [专家分:10] 发布于 2010-05-02 21:14:00
要象不能,如果要实现此功能,就要创建EXCEL对象,VFP通过向EXCEL对象修改表格达到目的。
19 楼
dbfox [专家分:490] 发布于 2010-05-03 07:38:00
你把说明性文字先作为一个表(用SELECT 'gg','ggg','gggg' from 表1 WHERE RECNO()=1into cursor lsb 生成一个只有一行的临时表,这一行就是你要加的说明性文字,把gg用你的具体文字代替)copy成EXCEL表,再把数据表记录追加进去.因为你[quote]已实现追加了[/quote]
当然,我要做这件事,我不用上述方法,我会用在EXCEL中录制宏—编辑宏—复制宏—转换宏代码为VFP代码—用VFP代码操纵EXCEL对象完成任务。但这种方法对楼主可能有小难度。
20 楼
coffeenight [专家分:230] 发布于 2010-05-03 21:11:00
[quote]你把说明性文字先作为一个表(用SELECT 'gg','ggg','gggg' from 表1 WHERE RECNO()=1into cursor lsb 生成一个只有一行的临时表,这一行就是你要加的说明性文字,把gg用你的具体文字代替)copy成EXCEL表,再把数据表记录追加进去.因为你[quote]已实现追加了[/quote][/quote]
呵,我也是用这个方法实现的
[quote]当然,我要做这件事,我不用上述方法,我会用在EXCEL中录制宏—编辑宏—复制宏—转换宏代码为VFP代码—用VFP代码操纵EXCEL对象完成任务。但这种方法对楼主可能有小难度。[/quote]
唉,是啊,目前来说确实小有难度
我来回复