pb中,如何将excel中某些内容作为数据库的字段导入数据库 10
1个回答
展开全部
以下是完整的导入数据的代码:这个要求就是需要使EXCEL的标题和数据窗口的标题对应,EXCEL从第二行开始导入。如果是某些内容,那么要换一种别的方式。
string str_savename,named
int excelok,li_net
oleobject excelserver
excelserver=create oleobject
excelok=excelserver.connecttonewobject("excel.application")
//检查返回值,以确保已成功地连接到了Excel
if excelok <> 0 then
messagebox("信息提示","连接EXCEL失败,请检查计算机中是否安装了EXCEL!")
return
end if
li_net = GetFileOpenName("选择文件", str_savename,named,"xls","Excel文件(*.xls),*.xls")
if li_net > 0 then
if str_savename = "" then return
excelserver.workbooks.open(str_savename)
excelserver.activesheet.cells.copy
dw_1.importclipboard(2) //导入数据 dw_1是数据窗口名字,改成你的名字
clipboard("")
excelserver.quit()
excelserver.disconnectobject()
destroy excelserver
end if
如果只导入EXCEL的某些内容,可以用如下代码:
string ls_tmp
IF GetFileOpenName("选择文件 ", ls_Path, ls_File, "XLS", "Excel Files (*.XLS),*.XLS, Comma-separated values (*.CSV),*.csv") < 0 THEN
Messagebox('文件导入', '获取文件失败!', StopSign!)
return
END IF
// === 判断档案是否存在
IF FileExists(ls_Path) = False THEN return
// === 判断是否为Excel档案
IF Lower(Right(ls_Path, 4)) <> '.xls' AND Lower(Right(ls_Path, 4)) <> '.csv'THEN
MessageBox('文件导入', '并非可选择的文件!', StopSign!)
return
END IF
oXls = CREATE OleObject
ll_Xls = oXls.ConnectToObject('','excel.application')
CHOOSE CASE ll_Xls
Case -5
// === 文件还没打开
oXls.ConnectToNewObject('excel.application')
Case Is < 0
DESTROY oXls
MessageBox('文件导入', '无法开启指定的文件!', StopSign!)
return
END CHOOSE
Long ll_Row, curRow
Decimal ld_Tmp
curRow = 2 //设置从EXCEL的第二行开始导入
oBook = oXls.WorkBooks.Open(ls_Path)
oSheet = oXls.Sheets(1)
DO WHILE True
ls_value = oSheet.Cells(curRow, 1).Value //读取excel的内容放到变量中,cells(行,列)
IF ls_value = '' THEN Exit //如果遇到空,表示已经导入完成
ll_Row = dw_1.InsertRow(0) //给数据窗口增加行
dw_1.setitem() ...
curRow ++
LOOP
oBook.Close
DESTROY oSheet
DESTROY oBook
IF ll_Xls = -5 THEN oXls.Application.Quit
oXls.DisConnectObject()
DESTROY oXls
string str_savename,named
int excelok,li_net
oleobject excelserver
excelserver=create oleobject
excelok=excelserver.connecttonewobject("excel.application")
//检查返回值,以确保已成功地连接到了Excel
if excelok <> 0 then
messagebox("信息提示","连接EXCEL失败,请检查计算机中是否安装了EXCEL!")
return
end if
li_net = GetFileOpenName("选择文件", str_savename,named,"xls","Excel文件(*.xls),*.xls")
if li_net > 0 then
if str_savename = "" then return
excelserver.workbooks.open(str_savename)
excelserver.activesheet.cells.copy
dw_1.importclipboard(2) //导入数据 dw_1是数据窗口名字,改成你的名字
clipboard("")
excelserver.quit()
excelserver.disconnectobject()
destroy excelserver
end if
如果只导入EXCEL的某些内容,可以用如下代码:
string ls_tmp
IF GetFileOpenName("选择文件 ", ls_Path, ls_File, "XLS", "Excel Files (*.XLS),*.XLS, Comma-separated values (*.CSV),*.csv") < 0 THEN
Messagebox('文件导入', '获取文件失败!', StopSign!)
return
END IF
// === 判断档案是否存在
IF FileExists(ls_Path) = False THEN return
// === 判断是否为Excel档案
IF Lower(Right(ls_Path, 4)) <> '.xls' AND Lower(Right(ls_Path, 4)) <> '.csv'THEN
MessageBox('文件导入', '并非可选择的文件!', StopSign!)
return
END IF
oXls = CREATE OleObject
ll_Xls = oXls.ConnectToObject('','excel.application')
CHOOSE CASE ll_Xls
Case -5
// === 文件还没打开
oXls.ConnectToNewObject('excel.application')
Case Is < 0
DESTROY oXls
MessageBox('文件导入', '无法开启指定的文件!', StopSign!)
return
END CHOOSE
Long ll_Row, curRow
Decimal ld_Tmp
curRow = 2 //设置从EXCEL的第二行开始导入
oBook = oXls.WorkBooks.Open(ls_Path)
oSheet = oXls.Sheets(1)
DO WHILE True
ls_value = oSheet.Cells(curRow, 1).Value //读取excel的内容放到变量中,cells(行,列)
IF ls_value = '' THEN Exit //如果遇到空,表示已经导入完成
ll_Row = dw_1.InsertRow(0) //给数据窗口增加行
dw_1.setitem() ...
curRow ++
LOOP
oBook.Close
DESTROY oSheet
DESTROY oBook
IF ll_Xls = -5 THEN oXls.Application.Quit
oXls.DisConnectObject()
DESTROY oXls
来自:求助得到的回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询