当前位置: 代码迷 >> PB >> 请问 PB 程序导入Excel里面的内容到数据库
  详细解决方案

请问 PB 程序导入Excel里面的内容到数据库

热度:74   发布时间:2016-04-29 07:35:45.0
请教 PB 程序导入Excel里面的内容到数据库
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
  相关解决方案