AHK脚本(11)——批量导入ofd文件信息
创作者俱乐部成员
今天是脚本,从当前目录里的多个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 |