PB读取任何格式excel只要指定开始和结束的行列
//从excel文件获得数据
//建立从EXCEL表获取数据的通道
OLEObject ole1
int result ,ll_rtn,i,row,col
string ls_pathname,ls_filename
long ll_firstrow,ll_firstcol
long ll_endrow,ll_endcol
string ls_cell,ls_desc
ole1= CREATE OLEObject
result=ole1.ConnectTonewObject("Excel.application")
if result<>0 then
messagebox("提示!","连接Excel表出错,请重新选择")
return
end if
string ls_word[]
ls_word = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'}
//操作员选择要导入数据的EXCEL文件
ll_rtn = getfileopenname('打开文件',ls_pathname,ls_filename,'XLS','EXCEL文件(*.xls),*.xls')
if ll_rtn<>1 then
messagebox("提示!","连接Excel表出错,请重新选择")
return
end if
ole1.workbooks.open(ls_pathname,0,0)
ole1.visible = true
//指定开始行,开始列,结束行,结束列
ll_firstrow=1
ll_firstcol=1
ll_endrow=30
ll_endcol=3
//从用户指定行指定列读取数据到DW.
for row = ll_firstrow to ll_endrow
for col = ll_firstcol to ll_endcol
ls_cell = string(ole1.workbooks[1].worksheets[1].cells(row,col).value)
i = dw_1.insertrow(0)
dw_1.setitem(i,'irow',row)
dw_1.setitem(i,'icol',col)
dw_1.setitem(i,'svalue',ls_cell)
dw_1.setitem(i,'ss',ls_word[col] + string(row) )
ls_desc += ls_word[col] + string(row) +'=' + string(ls_cell) + '~r~n'
next
ls_desc += '~r~n'
next
mle_1.text = ls_desc
ole1.visible = false
ole1.workbooks.close()
ole1.Quit()
ole1.DisconnectObject()
//断开与OLE的连接
destroy ole1