PB 数据窗口数据导入Excel, 如果存在则追加,不存在则创建。
2010-09-14 16:48
916 查看
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
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
相关文章推荐
- PB 数据窗口数据导入Excel, 如果存在则追加,不存在则创建。
- C# 操作XML 如果不存在创建 存在直接追加
- PB导入EXCEL到数据窗口
- 判断本地系统目录下是否存在XML文件,如果不存在就创建一个XMl文件,若存在就在里面执行添加数据
- PB从EXCEL中导入数据到数据窗口的程序(1)
- PB从EXCEL中导入数据到数据窗口的程序(2)
- PB从EXCEL中导入数据到数据窗口的程序(2)
- 判断本地系统目录下是否存在XML文件,如果不存在就创建一个XMl文件,若存在就在里面执行添加数据
- PB从EXCEL中导入数据到数据窗口的程序(1)
- Java实现Excel导入数据库,数据库中的数据导入到Excel。。转载 自学资料总结 实现的功能: Java实现Excel导入数据库,如果存在就更新 数据库中的数据导入到Excel 1、
- Doc的窗口就创建一个,如果已经存在就激活那个窗口,不存在就建立Doc(转自CSDN)
- python 判断目录是否存在,如果不存在则创建
- 采用dmp格式将分区表数据导入新数据库时,如果新数据库中没有相同的分区时会报错,提示创建所有的分区
- 如果通过toad得到表结构的sql语句?通过toad可以导入导出excel数据文件吗?
- SSIS处理导入数据时, 存在的更新, 不存在的插入
- 命令窗口下excel数据导入到Mysql 和 mysql数据导出到excel
- PB中数据窗口导出数据到EXCEL的程序(3)
- 数据导入到已存在的excel表格中
- SSIS处理导入数据时, 存在的更新, 不存在的插入
- SSIS处理导入数据时, 存在的更新, 不存在的插入