// 事件: 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
//================================================================================