kk_lee69 发表于 2010-7-1 17:37:34

使用IE呼叫 EXCEL 內嵌 到AU3 裡面的程式.....需要高手幫忙修改一下

使用IE呼叫 EXCEL 內嵌 到AU3 裡面的程式.....需要高手幫忙修改一下

我想把 EXCEL 內嵌到 AU3 裡面目前想到的方法是 透過 IE 方式 呼叫.......但是會遇到一個問題.....

那就是 電腦老是會問我..... 要儲存還是開啟....或者取消........

我當然知道在自己的電腦 裡面改一下設定就可以避免這個問題.......但是我不想動到這個設定.....有沒有辦法避免掉 這個問題呢??

或者 有沒有直接呼叫 EXCEL 內嵌的方式呢??

以下是我的程式碼.....請高手幫幫忙修改一下....
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Opt('MustDeclareVars', 1)

Example()

; 簡單的例子: 在 AutoIt GUI 裡面嵌入 WEB 瀏覽器
;
; 請參閱: http://msdn.microsoft.com/workshop/browser/webbrowser/reference/objects/internetexplorer.asp
Func Example()
    Local $oIE, $GUIActiveX, $GUI_Button_Back, $GUI_Button_Forward
    Local $GUI_Button_Home, $GUI_Button_Stop, $msg
   
    $oIE = ObjCreate("Shell.Explorer.2")
       


    ; 產生一個簡單 GUI
    GUICreate("嵌入 Web 控件測試", 640, 580, (@DesktopWidth - 640) / 2, (@DesktopHeight - 580) / 2, BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS, $WS_CLIPCHILDREN))
    $GUIActiveX = GUICtrlCreateObj ($oIE, 10, 40, 600, 360)
    $GUI_Button_Back = GUICtrlCreateButton("後退", 10, 420, 100, 30)
    $GUI_Button_Forward = GUICtrlCreateButton("向前", 120, 420, 100, 30)
    $GUI_Button_Home = GUICtrlCreateButton("本地", 230, 420, 100, 30)
    $GUI_Button_Stop = GUICtrlCreateButton("停止", 330, 420, 100, 30)

    GUISetState()       ;顯示 GUI

    $oIE.navigate("C:\AUTOIT程式\EXCEL測試\1.xls")

    ; 等候用戶關閉窗口
    While 1
      $msg = GUIGetMsg()

      Select
            Case $msg = $GUI_EVENT_CLOSE
                ExitLoop
            Case $msg = $GUI_Button_Home
                $oIE.navigate("C:\AUTOIT程式\EXCEL測試\1.xls")
                       
            Case $msg = $GUI_Button_Back
                $oIE.GoBack
            Case $msg = $GUI_Button_Forward
                $oIE.GoForward
            Case $msg = $GUI_Button_Stop
                $oIE.Stop
      EndSelect
      
    WEnd

    GUIDelete()
EndFunc   ;==>Example

opcbo 发表于 2010-7-12 15:47:47

我帮你研究一下,呵呵!

lynfr8 发表于 2010-7-12 23:57:02

实现内嵌是为了达到什么目的?
如果是为了操作excel
Excel COM"Component Object Model"(对象组件模块)足够用了
比如:$oExcel = ObjCreate("Excel.Application")                   ; 创建一个Excel 对象
$oExcel.Visible = 1                                        ; 显示 Excel
$oExcel.WorkBooks.Add                                    ; 添加一个新的工作表
$oExcel.ActiveWorkBook.ActiveSheet.Cells(1,1).Value="test" ; 将 "test" 写入 1 行 1 列的表格中
sleep(4000)                                                ;等待4秒看结果
$oExcel.ActiveWorkBook.Saved = 1                           ; 模拟用户保存工作表
$oExcel.Quit                                             ; 退出 Excel

kk_lee69 发表于 2010-7-13 15:06:45

回复 3# lynfr8


    不單單是為了 操作EXCEL單純的操作EXCEL 我會.......事實上 我的目的 是為了 把EXCEL 的畫面 內嵌到GUI 中......我寫了一個介面 作為用條碼機...輸入訂單資料.....輸入完畢後會在左手邊 畫面暫存....目前我用的是 LISTVIEW 方式......但是 這個無法像EXCEL 方式修改......

我的想法是想把EXCEL 侷限於 我的GUI 中那個範圍......輸入完了使用者可以 直接像EXCEL 那樣修改資料.....存檔的時候 再把資料從EXCEL 中叫出來寫入資料庫.....

因為找不到 方法 可以內嵌 EXCEL 到GUI 中..........所以 只好透過IE 呼叫.....因為IE 內嵌到GUI中 是有範例的

rikthhpgf2005 发表于 2010-7-13 17:05:54

3楼的说了等于没说

kk_lee69 发表于 2010-7-28 14:06:07

這個帖子 自己在頂一下....撇除上面的問題 之外....還有個問題是

當程式啟動....點選EXCEL可以直接編輯.....但是如果 點選 GUI 上的INPUTBOX 後....再回EXCEL...畫面就會像是被卡住.....無法直接上下左右移動......真是不知道原因出在哪裡
页: [1]
查看完整版本: 使用IE呼叫 EXCEL 內嵌 到AU3 裡面的程式.....需要高手幫忙修改一下