祝愿大家身体健康!

 站点注册  找回密码
 站点注册

QQ登录

只需一步,快速开始

查看: 6638|回复: 0

[学习笔记] PB导入EXCEL(XLS或XLSX)到数据窗口

[复制链接]

[学习笔记] PB导入EXCEL(XLS或XLSX)到数据窗口

[复制链接]
ehxz

主题

0

回帖

58万

积分

管理员

积分
588431
贡献
在线时间
小时
2022-10-2 20:14:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?站点注册

×
// Description:两种方法进行
//1、通过数组一行一行读入(定义数据有点麻烦)
//2、通过剪贴板直接
//方法一:
//====================================================================
String ls_path,ls_name
ls_path = "C:\Documents and Settings\Administrator.FLYSTONE\桌面\新建文件夹 (3)\test.xls"
dw_1.Reset() //clean DW
String a[1000,1000]
Integer i,j,li_ret

//li_ret = GetFileopenName('选择XLS',ls_path,ls_name,"XLS","EXCEL (*.XLS),*.XLS")
li_ret = GetFileopenName('请选择EXCEL文件',ls_path,ls_name,"XLS","EXCEL (*.XLS;*.XLSX),*.XLS;*.XLSX")
if li_ret <> 1 then return

OLEObject ExcelServer
Int li_ConnectErr
ExcelServer = Create OLEObject
li_ConnectErr = ExcelServer.ConnectToNewObject( "excel.application" )
If li_ConnectErr < 0 Then
        Choose Case li_ConnectErr
                Case - 1
                        MessageBox('错误提示','无效的调用')
                Case - 2
                        MessageBox('错误提示','类名没发现')
                Case - 3
                        MessageBox('错误提示','对象不能创建')
                Case - 4
                        MessageBox('错误提示','文件不能连接')
                Case - 5
                        MessageBox('错误提示','不能连接现在的对象')
                Case - 6
                        MessageBox('错误提示','文件无效')
                Case - 7
                        MessageBox("错误提示","文件不存在或已经打开")
                Case - 8
                        MessageBox("错误提示","服务器不能装载选择的文件")
                Case - 9
                        MessageBox("错误提示","其他错误")
        End Choose
        Return
End If

ExcelServer.Workbooks.Open(ls_path,0,False)
//对XLS文件进行了改动以后,在关闭该文件时是否需要向用户提出警告:剪贴板提示信息。
ExcelServer.Application.DisplayAlerts = False
//选择sheets表
//ExcelServer.activeworkbook.worksheets("sheet2").Select()
Int li_rows,li_columns
li_rows = ExcelServer.ActiveSheet.UsedRange.Rows.Count //取得总行数
li_columns = ExcelServer.ActiveSheet.UsedRange.columns.Count //取得总行数
// # of columns in excel
//sle_2.Text = TRIM(STRING(li_rows))
// # of rows in excel
//sle_1.Text = STRING(li_columns)
//lole_sheet = ole_1.Application.ActiveWorkbook.WorkSheets[1] //得到第当前work的第一个sheet
datetime ld_rq
string ls_jybz,ls_dkr,ls_dkbz,ls_billType
dec ld_je
long li_row

for i = 2 to li_rows
        ld_rq = datetime(date(ExcelServer.ActiveSheet.Cells(i,1).value),time('00:00:00'))
        ls_jybz = string(ExcelServer.ActiveSheet.Cells(i,2).value)
        ld_je = dec(ExcelServer.ActiveSheet.Cells(i,3).value)
        ls_dkr = string(ExcelServer.ActiveSheet.Cells(i,4).value)
        ls_billType = string(ExcelServer.ActiveSheet.Cells(i,5).value)
       
        li_row = dw_1.insertrow(0)
       
        dw_1.setitem(li_row, 'rq',ld_rq)
        dw_1.setitem(li_row, 'jybz',ls_jybz)
        dw_1.setitem(li_row, 'je',ld_je)
        dw_1.setitem(li_row, 'dkr',ls_dkr)
        dw_1.setitem(li_row, 'dkbz',ls_dkbz)
        dw_1.setitem(li_row, 'BillType',ls_billType)
next
//方法二:
string str_savename,named,s_grxh
int excelok,li_net
long  li_count,i
oleobject excelserver
excelserver = create oleobject
excelok = excelserver.connecttonewobject("excel.application")
//检查返回值,以确保已成功地连接到了Excel
if        excelok <> 0        then
        messagebox("信息提示","连接EXCEL失败,请检查计算机中是否安装了EXCEL!")
        return - 1
end if
li_net = GetFileOpenName("选择文件",str_savename,named,"xls","Excel文件(*.xls),*.xls")
if        li_net > 0        then
        if str_savename = "" then return - 1
        dw_1.settransobject(sqlca)
        dw_1.reset()
        excelserver.workbooks.open(str_savename)
        excelserver.activesheet.cells.copy
        li_count = dw_1.importclipboard(2) //导入数据
        clipboard("")
        excelserver.quit()
        excelserver.disconnectobject()
        destroy excelserver
        return 1
else
        messagebox('信息提示','没有指定导入文件!')
        return - 1
end if
共享共进共赢Sharing And Win-win Results
SYBASEBBS - 免责申明1、欢迎访问“SYBASEBBS.COM”,本文内容及相关资源来源于网络,版权归版权方所有!本站原创内容版权归本站所有,请勿转载!
2、本文内容仅代表作者观点,不代表本站立场,作者自负,本站资源仅供学习研究,请勿非法使用,否则后果自负!请下载后24小时内删除!
3、本文内容,包括但不限于源码、文字、图片等,仅供参考。本站不对其安全性,正确性等作出保证。但本站会尽量审核会员发表的内容。
4、如本帖侵犯到任何版权问题,请立即告知本站 ,本站将及时删除并致以最深的歉意!客服邮箱:admin@sybasebbs.com
您需要登录后才可以回帖 登录 | 站点注册

本版积分规则

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com

QQ|Archiver|PowerBuilder(PB)BBS社区 ( 鲁ICP备2021027222号-1 )

GMT+8, 2024-11-21 19:30 , Processed in 0.035707 second(s), 9 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表