一个简单的DW导出XLS的函数,不错的了
/**********************************************************/ <br/> /* 函数名称:uf_dwsaveas_excel <br/> 功能 :将数据窗口数据导出EXCEL文件,并将EXCEL文件默认英文标题替换成中文。 <br/> 参数 :datawindow datawin,为用户要导出数据窗口的数据窗口控件名 <br/> 返回值:integer 1,success;-1,error <br/> 流程描述:先用saveasAscii()倒出为excel文件,再替换表头为中文名 <br/> 设计人:yanhui 2003年11月 <br/> 修改人:叶文林 2004.4.8 <br/> 原因:为提高程序的可读性作了少量的修改(如:增加注释、改变排版风格等)*/ <br/> /**********************************************************/ <br/> <br/> /***************以下程序将导出为EXCEL文档******************/ <br/> integer li_rtn,ii,li_asc <br/> string ls_name,ls_pathname <br/> boolean lb_exist <br/> if datawin.RowCount()<1 then <br/> MessageBox("提示信息","请先检索数据再导出至Excel!") <br/> return -1 //error <br/> end if <br/> li_rtn=GetFileSaveName("保存文件",ls_pathname,ls_name,"xls","Excel文件(*.xls),*.xls") <br/> <br/> if li_rtn=1 then <br/> lb_exist = FileExists(ls_pathname) <br/> IF lb_exist THEN <br/> li_rtn = MessageBox("保存", ls_pathname+"已经存在,是否覆盖?",Exclamation!, YesNo!) <br/> end if <br/> if li_rtn=1 then <br/> //当文件存在用户选择覆盖,或是文件本就不存在时。注意变量li_rtn <br/> li_rtn=datawin.SaveAsAscii(ls_pathname) <br/> if li_rtn=1 then <br/> // MessageBox("提示信息","导出数据成功!") <br/> else <br/> MessageBox("错误信息","导出数据失败!") <br/> return -1 //error <br/> end if <br/> else <br/> return -1 //error <br/> end if <br/> else <br/> return -1 <br/> end if <br/> <br/> /**********以下程序将导出的EXCEL英文标题替换为汉字*********/ <br/> long numcols , numrows , c, r <br/> OLEObject xlapp , xlsub <br/> int ret <br/> numcols = long(datawin.Object.DataWindow.Column.Count) <br/> numrows = datawin.RowCount() <br/> <br/> // 产生oleobject的实例 <br/> xlApp = Create OLEObject <br/> <br/> //连接ole对象 <br/> ret = xlApp.ConnectToNewObject( "Excel.Sheet" ) <br/> if ret < 0 then <br/> MessageBox("连接失败!","连接到EXCEL失败,请确认您的系统是否已经安装EXCEL!~r~n"& <br/> +"错误代码:"+string(ret)) <br/> return -1 <br/> end if <br/> // 打开EXCEL文件 <br/> xlApp.Application.Workbooks.Open(ls_pathname) <br/> ////使文件可见 <br/> //xlApp.Application.Visible = true <br/> <br/> // 得到活动工作表的引用,改善程序性能 <br/> xlsub = xlapp.Application.ActiveWorkbook.Worksheets <br/> string ls_colname,ls_text,ls_modistr,ls_col <br/> //取字段名更改为对应的文本text值 <br/> FOR c=1 to numcols <br/> ls_col="#"+string(c)+".name" <br/> ls_colname=datawin.describe(ls_col) <br/> ls_modistr=ls_colname+"_t.text" <br/> ls_text=datawin.describe(ls_modistr) <br/> xlsub.cells=ls_text <br/> NEXT <br/> <br/> xlApp.DisConnectObject() <br/> Destroy xlapp <br/> MessageBox("提示信息","导出数据成功!") <br/> return 1 //success 好的,谢谢分享!试试 受用了,谢谢~~ 学习学习,谢谢 今天看了测试程序发现有问题。还需要改善!
页:
[1]