PB中 把DW导出到Excel
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PB中把DW导出到Excel,与Excel
//============================================================================= =
// 事件: cb_export::clicked()
//------------------------------------------------------------------------------
// 描述: 把收费单的内容导入到excel中,Excel为2003
//------------------------------------------------------------------------------
// 返回值: long
//------------------------------------------------------------------------------
// 作者: Ran (Sunday_hl) 日期: 2006.04.12-13
//------------------------------------------------------------------------------
// 修改历史:
// 整理时间2006.08.22
//=============================================================================
String docname,named
String current_dir
Integer Value
//============================================================================= ===
//提示文件保存地点
current_dir = GetCurrentDirectory()
Value = GetFileSaveName("文件选择",docname,named,"xls","Excel文档(*.xls), *.xls")
//恢复路径
ChangeDirectory(current_dir)
IF Value <> 1 THEN RETURN
IF FileExists(docname) THEN
IF MessageBox("提示信息","“" + docname + "”文档已经存在,~r~n是/否覆盖此文档?",Information!,YesNoCancel!,1) <> 1 THEN
RETURN
END IF
END IF
//============================================================================ //使用ole向excel中倒入数据
OleObject uo_world,uo_sheel
uo_world = CREATE OleObject
uo_sheel = CREATE OleObject
IF uo_world.ConnectToNewObject("Excel.Application") <> 0 THEN //把ole连接到excel MessageBox('连接到Excel错误','Excel无法连接!请确认是否已经安装了Excel!~r~n或者与管理员联系!',Exclamation!)
DESTROY uo_sheel
DESTROY uo_world
RETURN
END IF
//============================================================================= ===
//连接上后,对Excel进行操作
TRY //try例行例外控制
uo_world.DisplayAlerts = False //强制执行,不用提示
uo_world.workbooks.add() //创建一个新的工作薄
uo_sheel = uo_world.ActiveSheet() //得到当前工作表
uo_sheel.Rows.Font.size = 10 //把默认的字体设为10号
uo_sheel.Rows.RowHeight = 15 //把默认的行高设为15
uo_sheel.Range("A1:I5").Merge() //合并单元格
uo_sheel.Range("A1:I5").Value = "镇江市XXXXXXXXXX检测收费明细" //为单元格赋值
uo_sheel.Range("A1:I5").Font.Bold = true //字体显示为粗体
uo_sheel.Range("A1:I5").Font.size = 18 //把区域字体定义为18号
uo_sheel.Range("A1:I5").HorizontalAlignment = 3 //区域内的字体居中,1是默认2是左对齐,3是居中,4是右对齐
uo_sheel.Range("A6:G6").Merge()
uo_sheel.Range("H6:I6").Merge()
uo_sheel.Range("H6:I6").Value = today()
uo_sheel.Range("H6:I6").HorizontalAlignment = 3
uo_sheel.Range("A6:I6").Borders[4].LineStyle = 1 //为区域单元格画下画线四个边顺时针旋转,线类型1为实线2为虚线,其他不知道
//都差不多了,废话的删除掉了.....................................................
uo_sheel.Range("A9:B9").Merge()
uo_sheel.Range("A9:B9").Value = "软件流水号:"
uo_sheel.Range("A9:B9").HorizontalAlignment = 4
uo_sheel.Range("C9:I9").Merge()
uo_sheel.Range("C9:I9").NumberFormat = "0" //设置显示格式
uo_sheel.Range("C9:I9").WrapText = True
uo_sheel.Range("C9:I9").value = dw_1.Object.accept_no[dw_1.getrow()]
uo_sheel.Range("C9:I9").HorizontalAlignment = 2
uo_sheel.Range("A10:B10").Merge()
uo_sheel.Range("A10:B10").Value = "备忘录:"
uo_sheel.Range("A10:B10").HorizontalAlignment = 4
uo_sheel.Range("C10:I10").Merge()
uo_sheel.Range("C10:I10").HorizontalAlignment = 2
uo_sheel.Range("A11:B11").Merge()
uo_sheel.Range("A11:B11").Value = "收费依据:"
uo_sheel.Range("A11:B11").HorizontalAlignment = 4
uo_sheel.Range("C11:I11").Merge()
uo_sheel.Range("C11:I11").Value = "收费依据: <<XXXXX>> 苏价费(1996)~r~n417号,苏财综(96)153号。
"
uo_sheel.Range("C11:I11").HorizontalAlignment = 2
uo_sheel.rows(11).RowHeight = uo_sheel.rows(11).RowHeight * 2 //调整当前行的高度为2倍普通高度
//都差不多了,废话的删除掉了.....................................................
uo_sheel.Range("A12:I12").Borders[4].LineStyle = 1 //下画线
//============================================================================= //提取子数据窗口,把其内容添加到excel中
DataWindowChild dwc_1 //子数据窗口
Long ll_row //子数据窗口的行
String ls_range //保存动态的行数
dw_1.Object.DataWindow.Processing = 5 //让数据窗口可以提取子数据窗口
IF dw_1.getChild("dw_item",dwc_1) = 1 Then //提取子数据窗口
uo_sheel.Rows(13).Font.Bold = TRUE
uo_sheel.Rows(13).RowHeight = 18
uo_sheel.Range("A13:I150").HorizontalAlignment = 3 //让这个区域的单元格居中
uo_sheel.Range("A13:C13").Merge()
uo_sheel.Range("A13:C13").Value = "检测项目"
uo_sheel.Range("D13:E13").Merge()
uo_sheel.Range("D13:E13").Value = "单价"
uo_sheel.Range("F13:G13").Merge()
uo_sheel.Range("F13:G13").Value = "样品份数"
uo_sheel.Range("H13:I13").Merge()
uo_sheel.Range("H13:I13").Value = "小计"
FOR ll_row = 1 TO dwc_1.RowCount() //循环提取子数据窗口中的行并插入到excel中
ls_range = "A" + String(13 + ll_row) + ":C" + String(13 + ll_row)
uo_sheel.Range(ls_range).Merge()
uo_sheel.Range(ls_range).Value = dwc_1.getitemstring(ll_row,"item_name")
//都差不多了,废话的删除掉了
.....................................................
NEXT
uo_sheel.Rows(13 + ll_row).Font.Bold = TRUE
uo_sheel.Rows(12 + ll_row).RowHeight = 18
//都差不多了,废话的删除掉了
.....................................................
ls_range = "F" + String(13 + ll_row) + ":G" + String(13 + ll_row)
uo_sheel.Range(ls_range).Merge()
uo_sheel.Range(ls_range).Value = "委托样应交金额:"
uo_sheel.Range(ls_range).HorizontalAlignment = 4
ls_range = "H" + String(13 + ll_row) + ":I" + String(13 + ll_row)
uo_sheel.Range(ls_range).Merge()
uo_sheel.Range(ls_range).Value = dwc_1.GetItemNumber(1,"compute_5") Else
MessageBox("Error","Get DataWindowChild Have A Big Error!",Exclamation!) END IF
//============================================================================= ===
ls_range = "A" + String(13 + ll_row) + ":I" + String(13 + ll_row)
uo_sheel.Range(ls_range).Borders[4].LineStyle = 1
ls_range = "H" + String(13 + ll_row + 1) + ":I" + String(13 + ll_row + 1)
uo_sheel.Range(ls_range).Merge()
uo_sheel.Range(ls_range).Value = dw_1.GetItemString(1,"page_1")
// uo_world.visible = 1 //让excel显示
uo_sheel.SaveAs(docname)
MessageBox("提示信息","保存成功!")
//============================================================================= ===
Catch(runtimeerror er) //捕获异常
MessageBox("运行时出错", er.GetMessage(),Exclamation!)
Finally
uo_world.quit() //关闭excel
DESTROY uo_sheel //注销对象
DESTROY uo_world //注销对象
END TRY。