下面这段代码可以实现隐藏的列不存到excel中:
for c = 1 to numcols
ls_colname = dw_print.describe('#'+string(c)+".name")+"_t"
ls_ret = dw_print.describe(ls_colname + ".visible")
if ls_ret = '1' then
xlsub.cells[1,c] = dw_print.describe(ls_colname+".text")
for r = 1 to numrows
xlsub.cells[r+1,c] = dw_print.object.data[r,c]
next
//连接excel
IF ole_object.ConnectToNewObject("excel.application") <> 0 THEN
MessageBox('OLE错误','OLE无法连接!')
return
END IF
long ll_colnum,ll_rownum,ll_row
ll_colnum = Long(this.object.datawindow.column.count)
ll_rownum = this.rowcount()
long ll_a
ll_a=asc('A')//得到A(asc)值
// //画网格
for ll_i=1 to ll_colnum
ll_width=integer(this.Describe("#"+string(ll_i)+".Width"))
ls_type= this.describe("#"+string(ll_i)+'.coltype')
ole_object.Columns(char(ll_a+ll_i)+':'+char(ll_a+ll_i)).ColumnWidth=ll_width/35
ole_object.cells[2,ll_i+1]=this.Describe("#"+string(ll_i)+".Tag")
if lower(left(ls_type,5))='char(' then
ole_object.Columns(char(ll_a+ll_i)+':'+char(ll_a+ll_i)).NumberFormatLocal = "@"
end if
next
string ls_editsyle//编辑格式
string ls_columnname,ls_value
// DataWindowChild ldw_child
for ll_i=1 to ll_rownum
for ll_j=1 to ll_colnum
ls_editsyle=lower(this.describe('#'+string(ll_j)+'.edit.style'))
if ls_editsyle='dddw' then
ls_columnname=this.describe('#'+string(ll_j)+'.name')
ls_value=trim(this.describe("Evaluate('lookupdisplay("+ls_columnname+")',"+string(ll_i)+')"'))
// ls_value=this.lookupdisplay('"'+ls_columnname+'"')
else
ls_value=string(this.object.data[ll_i,ll_j])
end if
if ls_value='!' then ls_value=''
if right(ls_value,1)='!' then ls_value=mid(ls_value,1,len(ls_value)-1)
ole_object.cells[2+ll_i,ll_j+1]=ls_value
next
next
///////////////////////////////////////////////////////////////////////////
//
// Function : gf_export_data3
//
// Parameters : ad_dw : datawindow
//
// Returns : true/false : boolean
//
// Description : Save the datawindow as a xls/doc file, what you see is what you get.
//
///////////////////////////////////////////////////////////////////////////
//
// author : 纪兆华 (jzhaohua@263.net)
// date : 2002-09-04
//
///////////////////////////////////////////////////////////////////////////
//declare the local variables
int li_value
string ls_path,ls_fname
// 删除原文件
if fileexists(ls_path) then
if messagebox('提示信息', '原文件已经存在, 是否覆盖 ?', Question!, YesNo!) = 2 then return false
if not filedelete(ls_path) then
messagebox('提示信息', '删除原文件失败, 该文件可能正在被使用 !')
return false
end if
end if
if ad_dw.SaveAs(ls_path, HTMLTable!, True) = -1 then
MessageBox("提示信息", "导出数据出错. 不能写入文件 !", Exclamation!)
return false
end if