簡體   English   中英

Lua WinAPI-從Microsoft Excel讀取單元格

[英]Lua WinAPI - Read cell from Microsoft Excel

我正在嘗試從運行的Excel 2007文檔的單元格中讀取值。 我正在使用LuaWinAPI擴展 我當前正在Windows XP計算機上運行(如果那很重要,但是WinAPI似乎可以從XP開始運行。

這是我的Excel文檔:

高強

這是我的Lua代碼:

require 'winapi'

w = winapi.find_window_match('Book1') -- Specify the name of the window

w:show() -- Set the visability

w:set_foreground() -- Bring this window to the foreground

handle = w:get_handle() -- Get window handle

t = {} -- Create a table

w:enum_children(function(w) table.insert(t,w) end) -- Enumerate all children

for k,v in pairs(t) do -- Print out all pairs in the table
    print("",k,"=",v)
end

這是我的Lua代碼輸出:

代碼輸出

有誰知道我應該如何遞歸枚舉才能找到每個單元格? 還是有更好的方法來解決這個問題? 我想要的文字是“ 1234”。 自從我更喜歡Unix以來,我並沒有做太多的Windows編程工作,但是看來我處在正確的軌道上。 我只是不知道如何從這里前進!

我懷疑Excel是否對電子表格中的每個單元格都使用一個窗口,因此嘗試通過導航窗口層次結構來訪問該單元格可能是一個死胡同。

如果可能的話,我建議將數據導出為通用文件類型,例如以逗號分隔的值,並使程序解析該文件。

另外,您可以閱讀有關UI Automation的信息 ,這是諸如屏幕閱讀器之類的東西可以訪問Windows應用程序UI中的數據的方式。 我從來沒有做過,但是看起來可能需要做很多工作。 不過,我相信這是嘗試通過其用戶界面從Windows應用程序中獲取數據的最可靠,受支持的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM