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(\"文件选择\文档 (*.xls), *.xls\")
//恢复路径
ChangeDirectory(current_dir)
IF Value <> 1 THEN RETURN
IF FileExists(docname) THEN
IF MessageBox(\"提示信息\“\" + docname + \"”文档已经存在,~r~n是/否覆盖此文档?\
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 = \"收费依据: < 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\ //提取子数据窗口 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\Error!\ DataWindowChild Have A Big 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(\"运行时出错\ Finally uo_world.quit() //关闭excel DESTROY uo_sheel //注销对象 DESTROY uo_world //注销对象 END TRY 因篇幅问题不能全部显示,请点此查看更多更全内容