PB从EXCEL中导入数据的程序

/*************************************************************************/
//Function : 从 excel 读取数据,保存到指定表
//parm :
// 1. as_excelfile : 对应的 excel 文件
// 2. SQLCA : 对应的数据库事务
// 3. sle_copy : 对应的临时 单文本编辑控件
//comment : 因为直接取数据中文处理不对,所以先把数据
// : 放在剪截板,在使用 sle_copy 接受
//return : of no use
//Author  : hzh
//date : 2004.04.10
//Modifier :
/**********************************************************************/


String as_excelfile

as_excelfile = "D:/work/公司财务数据转换/k3/科目对比.xls"

IF NOT FileExists(as_excelfile) THEN
MessageBox("数据读入","没有指定的文件")
RETURN 1
END IF

OLEObject xlapp

IF NOT IsValid(xlApp) THEN
xlApp = CREATE OLEObject
END IF

IF xlApp.ConnectToNewObject("Excel.Application" ) < 0 THEN
MessageBox(ga_app.dwmessagetitle,"不能打开EXCEL文件,请检查你的计算机是否安装了MSEXCEL?",QuesTion!)
RETURN -1
END IF

xlApp.Application.Workbooks.Open(as_excelfile)
xlApp.Application.Visible = FALSE

Int i_cnt
Long l_cnt,l_rows,l_cols
Long l_row,l_i,l_newrow

String s_cno,s_temp

l_rows = 289
l_cols = 23


mle_message.Text = "正在导入科目,请耐心等待..."

//一次处理两行
uo_ds_base ds_todb
IF NOT IsValid(ds_todb) THEN
ds_todb = CREATE uo_ds_base
END IF

String s_sql
s_sql = "select * from t_kmdb"
ds_todb.uf_createdwsyntax(s_sql,sqlca)
ds_todb.SetTransObject(SQLCA)

For l_cnt = 1 TO l_rows
l_newrow = ds_todb.InsertRow(0)
For l_row = 1 TO 5
xlapp.Application.ActiveWorkbook.Worksheets[1].cells[l_cnt,l_row].Copy
sle_copy.Text = ""
sle_copy.Paste()
s_temp = sle_copy.text
ds_todb.SetItem(l_newrow,l_row,s_temp)
NEXT
//exit
NEXT

xlApp.Application.Visible = TRUE

xlApp.Application.ActiveWorkbook.close(false)

xlapp.Application.Quit()
xlApp.DisConnectObject()

IF IsValid(xlApp) THEN
DESTROY xlapp
END IF

IF ds_todb.AcceptText() = 1 AND ds_todb.RowCount() > 0 THEN
delete from t_kmdb;
END IF
IF ds_todb.Update() = 1 THEN
COMMIT USING SQLCA;
//FileDelete(as_excelfile)
//MessageBox("导入数据","保存成功")
ELSE
ROLLBACK USING SQLCA;
//MessageBox("导入数据","保存失败")
END IF

IF IsValid(ds_todb) THEN
DESTROY ds_todb
END IF


delete from t_kmdb where cfikm = 'FI科目代码' or cfikm = 'c2' or cfikm = '';
COMMIT USING SQLCA;

mle_message.Text = "~r~n-------科目导入结束--------"

RETURN 1
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值