AHK脚本(11)——批量导入ofd文件信息

wils
wils

创作者俱乐部成员

今天是脚本,从当前目录里的多个ofd发票,批量导入信息,简单信息在OFD.xml里,详细信息在Doc_0\Attachs\original_invoice.xml里

原理很简单,ofd文件就是zip文件,解压后里面只有xml文件和jb2图片,其中图片可以用jbig2dec转为png,文本信息则只需要解析xml即可

🔔

#Requires AutoHotkey v2.0

sh := ComObject("shell.application")

xml := ComObject("MSXML2.DOMDocument")

ret := []

loop files "*.ofd" {

t := []

DirCreate("tmp")

d := A_LoopFileFullPath ".zip"

FileCopy(A_LoopFileFullPath, d, 1)

sh.NameSpace(A_ScriptDir "\tmp").CopyHere(sh.NameSpace(d).Items)

xml.load("tmp\OFD.xml")

for i in xml.selectNodes("//ofd:CustomData") {

t.Push '="' i.Text '"'

}

ret.Push t

FileDelete(d)

DirDelete("tmp", 1)

}

et := ComObject("ket.application")

et.Visible := true

wb := et.Workbooks.Add()

sa := ComObjArray(12, ret.Length, ret[1].Length)

for i in ret {

x := A_Index

for j in i {

y := A_Index

sa[x - 1, y - 1] := j

}

}

wb.Sheets[1].Range("A1").Resize(ret.Length, ret[1].Length).FormulaArray := sa

海南省
浏览 661
收藏
6
分享
6 +1
+1
全部评论