祝愿大家身体健康!

 站点注册  找回密码
 站点注册

QQ登录

只需一步,快速开始

查看: 6216|回复: 4

一个简单的DW导出XLS的函数,不错的了

[复制链接]

一个简单的DW导出XLS的函数,不错的了

[复制链接]
ehxz

主题

0

回帖

58万

积分

管理员

积分
588691
贡献
在线时间
小时
2007-6-13 19:14:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?站点注册

×
 /**********************************************************/  
  /* 函数名称:uf_dwsaveas_excel  
  功能 :将数据窗口数据导出EXCEL文件,并将EXCEL文件默认英文标题替换成中文。  
  参数 :datawindow   datawin,为用户要导出数据窗口的数据窗口控件名  
  返回值:integer   1,success;-1,error  
  流程描述:先用saveasAscii()倒出为excel文件,再替换表头为中文名  
  设计人:yanhui 2003年11月  
  修改人:叶文林   2004.4.8  
                  原因:为提高程序的可读性作了少量的修改(如:增加注释、改变排版风格等)*/  
  /**********************************************************/  
   
  /***************以下程序将导出为EXCEL文档******************/  
  integer   li_rtn,ii,li_asc  
  string   ls_name,ls_pathname  
  boolean   lb_exist  
  if   datawin.RowCount()<1   then  
  MessageBox("提示信息","请先检索数据再导出至Excel!")  
  return   -1 //error  
  end   if  
  li_rtn=GetFileSaveName("保存文件",ls_pathname,ls_name,"xls","Excel文件(*.xls),*.xls")  
   
  if   li_rtn=1   then  
  lb_exist   =   FileExists(ls_pathname)  
  IF   lb_exist   THEN    
  li_rtn   =   MessageBox("保存",   ls_pathname+"已经存在,是否覆盖?",Exclamation!,   YesNo!)  
  end   if  
  if   li_rtn=1   then  
  //当文件存在用户选择覆盖,或是文件本就不存在时。注意变量li_rtn  
  li_rtn=datawin.SaveAsAscii(ls_pathname)  
  if   li_rtn=1   then  
  // MessageBox("提示信息","导出数据成功!")  
  else  
  MessageBox("错误信息","导出数据失败!")  
  return   -1 //error  
  end   if  
  else  
  return   -1 //error  
  end   if  
  else  
  return   -1  
  end   if  
   
  /**********以下程序将导出的EXCEL英文标题替换为汉字*********/  
  long   numcols   ,   numrows   ,   c,   r  
  OLEObject   xlapp   ,   xlsub  
  int   ret  
  numcols   =   long(datawin.Object.DataWindow.Column.Count)  
  numrows   =   datawin.RowCount()  
   
  //   产生oleobject的实例  
  xlApp   =   Create   OLEObject  
   
  //连接ole对象  
  ret   =   xlApp.ConnectToNewObject(   "Excel.Sheet"   )  
  if   ret   <   0     then  
  MessageBox("连接失败!","连接到EXCEL失败,请确认您的系统是否已经安装EXCEL!~r~n"&  
  +"错误代码:"+string(ret))  
          return   -1  
  end   if  
  //   打开EXCEL文件  
  xlApp.Application.Workbooks.Open(ls_pathname)    
  ////使文件可见  
  //xlApp.Application.Visible   =   true  
   
  //   得到活动工作表的引用,改善程序性能  
  xlsub   =   xlapp.Application.ActiveWorkbook.Worksheets[1]  
  string   ls_colname,ls_text,ls_modistr,ls_col  
  //取字段名更改为对应的文本text值  
  FOR   c=1   to   numcols  
  ls_col="#"+string(c)+".name"  
  ls_colname=datawin.describe(ls_col)  
  ls_modistr=ls_colname+"_t.text"  
  ls_text=datawin.describe(ls_modistr)  
  xlsub.cells[1,c]=ls_text  
  NEXT  
   
  xlApp.DisConnectObject()  
  Destroy   xlapp  
  MessageBox("提示信息","导出数据成功!")  
  return   1 //success  
共享共进共赢Sharing And Win-win Results
SYBASEBBS - 免责申明1、欢迎访问“SYBASEBBS.COM”,本文内容及相关资源来源于网络,版权归版权方所有!本站原创内容版权归本站所有,请勿转载!
2、本文内容仅代表作者观点,不代表本站立场,作者自负,本站资源仅供学习研究,请勿非法使用,否则后果自负!请下载后24小时内删除!
3、本文内容,包括但不限于源码、文字、图片等,仅供参考。本站不对其安全性,正确性等作出保证。但本站会尽量审核会员发表的内容。
4、如本帖侵犯到任何版权问题,请立即告知本站 ,本站将及时删除并致以最深的歉意!客服邮箱:admin@sybasebbs.com
yeguozhi

主题

0

回帖

52

积分

注册会员

积分
52
贡献
在线时间
小时
2009-9-28 15:55:35 | 显示全部楼层
好的,谢谢分享!试试
共享共进共赢Sharing And Win-win Results
OKCJ1910

主题

0

回帖

73

积分

注册会员

积分
73
贡献
在线时间
小时
2009-9-30 12:40:02 | 显示全部楼层
受用了,谢谢~~
共享共进共赢Sharing And Win-win Results
suiyuan2008

主题

0

回帖

95

积分

注册会员

积分
95
贡献
在线时间
小时
2009-10-19 23:05:17 | 显示全部楼层
学习学习,谢谢
共享共进共赢Sharing And Win-win Results
qianhuhui

主题

0

回帖

267

积分

中级会员

积分
267
贡献
在线时间
小时
2009-11-21 13:27:38 | 显示全部楼层
今天看了测试程序发现有问题。还需要改善!
共享共进共赢Sharing And Win-win Results
您需要登录后才可以回帖 登录 | 站点注册

本版积分规则

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com

QQ|Archiver|PowerBuilder(PB)BBS社区 ( 鲁ICP备2021027222号-1 )

GMT+8, 2024-11-25 08:00 , Processed in 0.038657 second(s), 10 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表