转换当前DataWindow到Excel

/******************************************************
* 函数名称:  changexecl(datawindow,tile)   
* 函数用法:datawindow为要转化的数据窗口,tile为数据窗口的标题
* 参数1类型:datawindow
* 参数1名称:dw_data
* 参数2类型:string
* 参数2名称:tabname
* 返回值:None
* 举例:changexecl(dw_1,"这是我们的世界")                            
*******************************************************/

long numcols , numrows , c, r
OLEObject xlapp , xlsub //定义ole对象
int ret,coli
string colname,colname1

numcols = long(dw_data.Object.DataWindow.Column.Count)//找到数据窗口列数
numrows = dw_data.RowCount()//找到行数

xlApp = Create OLEObject//创建对象实例

ret = xlApp.ConnectToNewObject( "Excel.application" )
if ret < 0  then
 MessageBox("连接Excel失败!",/*string(ret)*/"对不起,您没有安装Excel应用程序!")
    return
end if

xlApp.Application.Workbooks.add()

xlApp.Application.Visible = true

xlsub = xlapp.Application.ActiveWorkbook.Worksheets[1]

string colnum     //判断是A、B...或AA、AB...还是BA、BB、BC...
if integer(numcols) > 26  then
 string colnumd,colnumd1
 int numcols1,numcols2
 numcols1 = mod(numcols,26)
 numcols2 = numcols / 26
 colnumd = char(numcols1 + 96)
 colnumd1 = char(numcols2 + 96)
 colnum ="'" + colnumd1 + colnumd + "'"
else
 colnum = char(numcols + 96)
end if

xlsub.cells[1,1] = tabname //标题
xlsub.cells[1,1].HorizontalAlignment = 3
xlsub.cells[1,1].VerticalAlignment = 3
xlsub.cells[1,1].Font.Size = 20
xlsub.range("a1:" + colnum + "1").Merge()

string ls_colname
integer i
for i = 1 to numcols

 //得到标题头的名字
 ls_colname = dw_data.describe('#' + string(i) + ".name") + "_t"
 xlsub.cells[2,i] = dw_data.describe(ls_colname + ".text")
next
//画表格线
string ls_range
ls_range = "A2:" + colnum + Trim(string(numrows+2))
xlsub.range(ls_range).borders(1).linestyle = 1
xlsub.range(ls_range).borders(2).linestyle = 1
xlsub.range(ls_range).borders(3).linestyle = 1
xlsub.range(ls_range).borders(4).linestyle = 1
//将数据写到EXECL
For c = 1 to numcols
 For r = 1 to numrows
      xlsub.cells[r + 2,c] = dw_data.object.data[r,c]
   Next
Next

xlapp.Application.ActiveWorkbook.saved = false

xlApp.DisConnectObject()
Destroy xlapp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值