/******************************************************
* 函数名称: 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