PB 数据窗口数据导入Excel, 如果存在则追加,不存在则创建。

来源:互联网 发布:java程序结构分为 编辑:程序博客网 时间:2024/06/06 09:09

PB 数据窗口数据导入Excel, 如果存在则追加,不存在则创建。 [转]

OLEOBJECT ExcelServer,Excelbooks

long ll_count ,ll_loop,ll_i,ll_j,ll_cnt,ll_colcount,ll_column,ll_file

Integer ExcelOK

string ls_value,ls_datatype,ls_colname

boolean ib_create //是否要新建sheet

//建立Ole对象

ExcelServer = Create OleObject

Excelbooks = Create OleObject

//连接Excel应用

ExcelOk = ExcelServer.connecttonewobject("excel.application")

//连接失败的处理

IF ExcelOk < 0 THEN

MessageBox("Connect to Excel Failed !",string(ExcelOk))

GOTO ENDED

END IF

//如果文件不存在

IF NOT FileExists(is_path) THEN

//--建一Excel文件

ll_file = fileopen(is_path,StreamMode!,Write!, LockWrite!,Replace!)

fileclose(ll_file)

ib_create = true //新建标志

END IF

//打开Excel工作薄

ExcelServer.Workbooks.Open(is_path)

//获取EXCEL当前工作薄中的第一个工作表

Excelbooks = ExcelServer.Application.ActiveWorkbook.Worksheets[1]

//计算EXCEL当前工作表表范围内的行数

if not ib_create then ll_cnt = long(ExcelServer.ActiveSheet.UsedRange.Rows.Count)

/*往进赋值:*/

//数据窗口列数

ll_column = long(dw_1.Describe("DataWindow.Column.Count"))

//数据窗口行数

ll_count = dw_1.rowcount()

for ll_loop = 1 to ll_count

for ll_colcount = 1 to ll_column

//获取数据窗口列名,目的是取数据

ls_colname = dw_1.describe("#"+string(ll_colcount)+".name")

//根据不同类型采用不同GetItem语句

ls_datatype = dw_1.describe("#"+string(ll_colcount)+".ColType")

choose case left(ls_datatype,4)

case "char"

ls_value = dw_1.getitemstring(ll_loop,ls_colname)

case "long"

ls_value = string(dw_1.getitemnumber(1,ls_colname))

case "deci"

ls_value = string(dw_1.getitemdecimal(1,ls_colname))

case "date"

ls_value = string(dw_1.getitemdatetime(1,ls_colname),"YYYY-MM-DD")

end choose //

//赋值Excel单元格,从ll_cnt(Excel的行数)开始

Excelbooks.Cells(ll_loop + ll_cnt ,ll_colcount).value = ls_value

next

next

/*-----------*/

//使EXCEL可见

ExcelServer.Application.Visible = TRUE

ENDED:

//保存Excel工作薄的记录
ExcelServer.Application.ActiveWorkbook.save()

//关闭保存时的提示
ExcelServer.Displayalerts = FALSE

//关闭当前工作薄

ExcelServer.activeworkbook.close()

//关闭Excel ExcelServer.Application.Quit()

//关闭Ole对象与Excel的连接

ExcelServer.disconnectobject()

//关闭另一个Ole对象

DESTROY Excelbooks

0 0
原创粉丝点击