前一段時間想用luacom來操作word文檔,最終發現總有
那么點問題
。這兩天用cygwin寫bash腳本來完成一些Word文檔操作,不得已總要調用cscript,通過javascript來訪問wordr com對象,而這樣調用cscript有兩個問題讓我很不爽:
- cscript又只接受Windows格式的路徑,每次都要用 $(cygpath -w xxx) 來轉換路徑
- cscript輸出或錯誤都是gb2312的,每次都要轉換成utf-8:cscipt //nologo xxxxx.js 2>&1 | piconv -f gb2312 -t utf-8
Cygwin如何直接訪問com對象呢?
cygwin有lua,而lua有luacom,這個能用嗎?我剛才試了一下,基本功能貌似沒有什么問題。因為cygwin本身就已經將文件名轉換成了utf-8的,所有之前 一篇文章 糾結于gb2312和utf-8的轉換問題也就不是問題了。
編譯安裝luacom
cygwin需要安裝 cmake make gcc g++ git lua,其他基礎的當然也要
- git clone https://github.com/davidm/luacom.git
- cd luacom
- mkdir build
- cmake ..
- make
- make install
測試FileSystemObject的枚舉中文文件夾功能
#!/usr/bin/lua require "luacom" local fso = luacom.CreateObject("Scripting.FileSystemObject") local myFolder = fso:GetFolder("F:") for _,file in luacom.pairs(myFolder.SubFolders) do print(file.Name) end
注:我的F:盤有很我中文文件夾,測試結果正確
測試Word文檔建立和保存
#!/usr/bin/lua require "luacom" wordApp = luacom.CreateObject("Word.Application") wordApp.Visible = true wordDoc = wordApp.Documents:Add() wordApp.Selection:TypeText("中文真的可以嗎,我也不知道?。?) wordDoc:SaveAs2("F:\\中文的文件名哦還挺長的.docx") wordDoc:Close(0) wordApp:Quit(0)
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
