PB 程序导入Excel里面的内容到数据库
有两个按钮 一个为导入按钮,一个保存按钮
给定用户Excel模版,点击导入按钮,将里面模版里面的值往DataWind里面填充
填充完后点击保存,然后对里面的某些字段进行准确性检查,如果准确无误,就保存至数据库
否则提醒用户哪行哪例数据有误
请教各位高手,该怎么做?
------解决方案--------------------
1.建议Excel里第一行为列标题,第二行为数据,可以用我以前写的这个函数,直接导入到数据窗口中
//function integer gf_importfromexcel (datawindow adw_data)
string ls_filename, ls_path
integer li_value
oleobject ole_excel
ole_excel = create oleobject
li_value = ole_excel.connecttonewobject("excel.application")
if li_value <> 0 then
gnv_base.of_message("连接EXCEL失败,请检查")
return -1
end if
if GetFileOpenName("选择文件", ls_filename, ls_path, "excel Files (*.xls), *.xls") <> 1 then
return 1
end if
if len(trim(ls_filename)) <= 0 then
return -1
else
ole_excel.workbooks.open(ls_filename)
clipboard('')
ole_excel.activesheet.cells.copy
choose case adw_data.importclipboard()
case -3
gnv_base.of_message("错误信息:无效的参数,请检查")
return -3
case -4
gnv_base.of_message("错误信息:无效的输入,请检查")
return -4
case else
gnv_base.of_message("恭喜,从" + ls_filename + "中导入数据成功")
return 1
end choose
clipboard("")
ole_excel.quit()
ole_excel.disconnectobject()
destroy ole_excel
end if
2.用DDE或者COM连接excel,把数据逐步写到数据窗口中,然后再检验
3.配置odbc,连接excel文件(把excel当作数据库),然后读取里在的内容,写到数据窗口里
------解决方案--------------------
版主的办法跟我想的一样
------解决方案--------------------
别人给的
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