| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1257 人关注过本帖
标题:prg中更改excel的sheet名出现的问题
只看楼主 加入收藏
martianfly
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-9-28
收藏
 问题点数:0 回复次数:5 
prg中更改excel的sheet名出现的问题
之前在论坛上学到了好多,感谢各位大神!
问题是这样的
 SELECT 2
  USE wx
  SELECT 1
 USE dw3
 DO whil NOT EOF()
  myxmc=yxmc
  myxmc1=yxmc1
  SELECT 2
   COPY TO &myxmc1 FOR myxmc=yxmc TYPE XL5
    OEXCEL = CREATEOBJECT('Excel.application')
    OEXCEL.WORKBOOKS.OPEN(SYS(5)+SYS(2003)+"\&myxmc1")
    oExcel.Sheets(myxmc1).NAME = "数据"
    oExcel.ActiveWorkBook.Save
    OEXCEL.WORKBOOKS.CLOSE
    OEXCEL.QUIT
    RELEASE OEXCEL
   SELECT 1
    SKIP   
  ENDDO
wx.DBF是一张大表,dw3是为了根据某一字段内容做的零时表,dw3中有2个字段,yxmc是大表中需要导出的字段内容,yxmc1是导出xls命名的方式,默认导出的sheet名和xls命名的一样,
现在是要在导出后更改sheet名为数据,因为yxmc1中的内容长短不一,在寻路径的时候会出现长空格,会提示xxxx     .xlsx不存在,目录下生成的xls文件命名中没有空格,想请问各位如何解决,谢谢!
搜索更多相关主题的帖子: excel 
2016-10-27 15:59
wangzhiyi
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:366
专家分:684
注 册:2014-4-9
收藏
得分:0 
以下是引用martianfly在2016-10-27 15:59:45的发言:

现在是要在导出后更改sheet名为数据,因为yxmc1中的内容长短不一,在寻路径的时候会出现长空格,会提示xxxx     .xlsx不存在,目录下生成的xls文件命名中没有空格,想请问各位如何解决,谢谢!

用ALLTRIM()函数压缩空格。
2016-10-27 16:07
martianfly
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-9-28
收藏
得分:0 
回复 2楼 wangzhiyi
感谢,我在OEXCEL.WORKBOOKS.OPEN(ALLTRIM(SYS(5)+SYS(2003)+"\&myxmc1"))
          oExcel.Sheets(ALLTRIM(myxmc1)).NAME = "数据"  
加了alltrim后变的很不稳定,出现OLE报错,未知的com状态代码,成功生成1,2个之后就不行了,excel假死,重启也无效,我一共生成40多个文件
系统环境win10+office2016+vfp9.0
2016-10-27 16:59
厨师王德榜
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:199
帖 子:995
专家分:4966
注 册:2013-2-16
收藏
得分:0 
1、用Addbs(SYS(5)+SYS(2003)) 代替 Alltrim
2、用一个字符串变量先过渡,例如: strFname = Addbs(SYS(5)+SYS(2003)) + myxmc1
然后,OEXCEL.WORKBOOKS.OPEN(strFname)
2016-10-28 11:24
wangzhiyi
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:366
专家分:684
注 册:2014-4-9
收藏
得分:0 
以下是引用martianfly在2016-10-27 15:59:45的发言:

之前在论坛上学到了好多,感谢各位大神!
问题是这样的
 SELECT 2
  USE wx
  SELECT 1
 USE dw3
 DO whil NOT EOF()
  myxmc=yxmc
  myxmc1=yxmc1
  SELECT 2
   COPY TO &myxmc1 FOR myxmc=yxmc TYPE XL5
    OEXCEL = CREATEOBJECT('Excel.application')
    OEXCEL.WORKBOOKS.OPEN(SYS(5)+SYS(2003)+"\&myxmc1")
    oExcel.Sheets(myxmc1).NAME = "数据"
    oExcel.ActiveWorkBook.Save
    OEXCEL.WORKBOOKS.CLOSE
    OEXCEL.QUIT
    RELEASE OEXCEL
   SELECT 1
    SKIP   
  ENDDO
wx.DBF是一张大表,dw3是为了根据某一字段内容做的零时表,dw3中有2个字段,yxmc是大表中需要导出的字段内容,yxmc1是导出xls命名的方式,默认导出的sheet名和xls命名的一样,
现在是要在导出后更改sheet名为数据,因为yxmc1中的内容长短不一,在寻路径的时候会出现长空格,会提示xxxx     .xlsx不存在,目录下生成的xls文件命名中没有空格,想请问各位如何解决,谢谢!

myxmc=yxmc
myxmc1=yxmc1
改这个地方,
myxmc=alltrim(yxmc)
myxmc1=alltrim(yxmc1)
2016-10-28 14:20
martianfly
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-9-28
收藏
得分:0 
回复 5楼 wangzhiyi
好的,感谢,不过后来发现在win7+office2007下运行ok,win10看来不是很稳定,已经解决了。
2016-10-28 16:11
快速回复:prg中更改excel的sheet名出现的问题
数据加载中...
 
   



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

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