天天看點

體驗uibot自動化識别票據并統計相關資訊

背景

近期有個從事會計的朋友咨詢我,會不會uibot軟體。 uibot沒聽過,目前也不會用了,就順便聊了幾句。大概描述下需求,就是公司很多發票,基本上都是先拍照,然後在人工統計發票資訊。但是工作量太大了。 是以想通過uibot這樣的智能自動化工具統計。

本着樂于助人和學習的态度,研究了一下。

從兩個功能來練手,一個是增值稅發票統計自動化,一個是火車票統計自動化。

現将基本的配置和代碼整理出來,僅供參考。

實作

  • 增值稅發票統計自動化

    開始之前,先介紹下整個流程。 首先是擷取發票所在目錄中的所有發票,然後周遊一下發票,提取發票資訊,寫入excel。

    • 下載下傳uibot軟體,安裝、注冊。
    • 網上下載下傳一些增值稅發票素材。
    • 運作uibot軟體
      1. 打開發票目錄,擷取發票檔案

        左側指令中心->檔案處理->通用檔案, 找到"擷取檔案或檔案夾清單",并拖動到中間可視化工作區。

        體驗uibot自動化識别票據并統計相關資訊
        體驗uibot自動化識别票據并統計相關資訊
      2. 在右側屬性和變量部分, 路徑一項中,選擇發票路徑的最終目錄。 輸出到設定為"發票清單",此數組後續會調用。
        體驗uibot自動化識别票據并統計相關資訊
      3. 指令中心->軟體自動化->Excel, "打開Excel工作簿",拖動到中間可視化工作區。
        體驗uibot自動化識别票據并統計相關資訊
        在屬性和變量部分,選中要儲存發票資訊的Excel檔案。
        體驗uibot自動化識别票據并統計相關資訊
      4. 周遊第2步設定好的數組"發票清單",以便于逐一識别發票資訊。 基本指令->文法詞法,按圖示,拖動到可視化工作區。
        體驗uibot自動化識别票據并統計相關資訊
        其中,數組設定為"發票清單", 值設定為 "發票路徑"。
        體驗uibot自動化識别票據并統計相關資訊
        點選"源代碼",增加如下一行,測試效果。
體驗uibot自動化識别票據并統計相關資訊

5. 點選"Mage AI"->"通用多票據識别":

體驗uibot自動化識别票據并統計相關資訊
體驗uibot自動化識别票據并統計相關資訊

圖像來源:輸入第4步設定的值,即"發票路徑",即調用每一張發票。

體驗uibot自動化識别票據并統計相關資訊

選擇票的類型和提取自段,如圖示:

體驗uibot自動化識别票據并統計相關資訊

6. 設定提取字段輸出。 每個提取的字段我們可以自定義輸出變量,該變量對應到用來儲存資訊的Excel列名。如圖示

體驗uibot自動化識别票據并統計相關資訊
體驗uibot自動化識别票據并統計相關資訊

設定完畢:

體驗uibot自動化識别票據并統計相關資訊

7. 看看源代碼, 紅框中的代碼為剛才配置的部分代碼。但是财務同學不隻有增值稅專用發票,增值稅電子發票。是以我複制一段上面的代碼到下面,把"special" 改為"electronic" 即可。

體驗uibot自動化識别票據并統計相關資訊

8. 接下來就是要寫入到Excel了。 指令中心->軟體自動化->寫入行,拖動到可視化工作區。

體驗uibot自動化識别票據并統計相關資訊

9. 我們看看儲存發票資訊的Excel的資訊。

體驗uibot自動化識别票據并統計相關資訊

寫的話,肯定是從第2行寫,讓程式自動識别目前行數。是以我們需要在"寫入行"之前,插入一個步驟,即擷取目前行數。

10. 擷取Excel目前行數,從目前行的下一行開始寫。

軟體自動化->Excel,将"擷取行數"拖動到"寫入行"這一操作的前面,工作表預設為"Sheet1",如果你的工作表不是預設值,請修改為時間的工作表名稱。 "輸出到"保持默iRet變量即可。

體驗uibot自動化識别票據并統計相關資訊
體驗uibot自動化識别票據并統計相關資訊

打開源代碼,按照圖示,增加一行,讓變量自+1(即下一行)

體驗uibot自動化識别票據并統計相關資訊
11. 寫入設定: 第10步,iRet已經自+1,對應到下一行,是以我們直接寫入iRet這一行就可以了。"立即儲存"該項自主設定。
           
體驗uibot自動化識别票據并統計相關資訊

運作軟體,展現效果:

體驗uibot自動化識别票據并統計相關資訊

因為網上下載下傳的發票素材不清晰,發票代碼和發票号碼不能識别。 使用清晰的真實發票圖檔是可以順利識别的。

發票資訊統計自動化整體代碼:

Dim iRet = ""
Dim 校驗碼 = ""
Dim objExcelWorkBook = ""
Dim arrayRet = ""
發票清單 = File.DirFileOrFolder('''C:\Users\Administrator.BJ937-9371\Desktop\fapiao''',"file",{"hasPath":True})
objExcelWorkBook = Excel.OpenExcel('''C:\Users\Administrator.BJ937-9371\Desktop\發票資訊統計.xlsx''',True,"Excel","","")
For Each 發票路徑 In 發票清單
	Log.Info(發票路徑)
	With Each Mage.ImageOCRInvoice(發票路徑,{"Pubkey":"Eto6bgJvXg2S5nDg5HnW","Secret":"TqS9K3xGiY5sYzWQuaXy9x5wpr7H","Url":"https://mage.uibot.com.cn"},30000)
		Select Case .ExtractInvoiceType()
		Case Alias("vat_special_invoice","增值稅專用發票")
			發票種類 = .ExtractInvoiceInfo("vat_special_invoice","type")
			發票代碼 = .ExtractInvoiceInfo("vat_special_invoice","vat_invoice_daima")
			發票号碼 = .ExtractInvoiceInfo("vat_special_invoice","vat_invoice_haoma")
			開票日期 = .ExtractInvoiceInfo("vat_special_invoice","vat_invoice_issue_date")
			校驗碼 = .ExtractInvoiceInfo("vat_special_invoice","vat_invoice_correct_code")
			購方稅号 = .ExtractInvoiceInfo("vat_special_invoice","vat_invoice_rate_payer_id")
			購方名稱 = .ExtractInvoiceInfo("vat_special_invoice","vat_invoice_payer_name")
			金額  = .ExtractInvoiceInfo("vat_special_invoice","vat_invoice_price")
			稅率 = .ExtractInvoiceInfo("vat_special_invoice","vat_invoice_tax_rate")
			稅額 = .ExtractInvoiceInfo("vat_special_invoice","vat_invoice_tax")
			價稅合計 = .ExtractInvoiceInfo("vat_special_invoice","vat_invoice_total_cover_tax_digits")
		Case Alias("vat_electronic_invoice","增值稅電子普通發票")
			發票種類 = .ExtractInvoiceInfo("vat_electronic_invoice","type")
			發票代碼 = .ExtractInvoiceInfo("vat_electronic_invoice","vat_invoice_daima")
			發票号碼 = .ExtractInvoiceInfo("vat_electronic_invoice","vat_invoice_haoma")
			開票日期 = .ExtractInvoiceInfo("vat_electronic_invoice","vat_invoice_issue_date")
			校驗碼 = .ExtractInvoiceInfo("vat_electronic_invoice","vat_invoice_correct_code")
			購方稅号 = .ExtractInvoiceInfo("vat_electronic_invoice","vat_invoice_rate_payer_id")
			購方名稱 = .ExtractInvoiceInfo("vat_electronic_invoice","vat_invoice_payer_name")
			金額 = .ExtractInvoiceInfo("vat_electronic_invoice","vat_invoice_price")
			稅率 = .ExtractInvoiceInfo("vat_electronic_invoice","vat_invoice_tax_rate")
			稅額 = .ExtractInvoiceInfo("vat_electronic_invoice","vat_invoice_tax")
			價稅合計 = .ExtractInvoiceInfo("vat_electronic_invoice","vat_invoice_total_cover_tax_digits")
		Case Else
		End Select
	End With
	iRet = Excel.GetRowsCount(objExcelWorkBook,"Sheet1")
	iRet = iRet + 1
	Excel.WriteRow(objExcelWorkBook,"Sheet1","A"&iRet,[發票種類,發票代碼,發票号碼,開票日期,校驗碼,購方稅号,購方名稱,金額,稅率,稅額,價稅合計],False)
Next

           
  • 火車票統計自動化

操作過程基本一樣,隻是提取字段不同。

  • 可視化部分:
    體驗uibot自動化識别票據并統計相關資訊
    體驗uibot自動化識别票據并統計相關資訊
  • 代碼截圖:
體驗uibot自動化識别票據并統計相關資訊
  • 輸出效果
Dim iRet = ""
Dim objExcelWorkBook = ""
Dim arrayRet = ""
車票清單 = File.DirFileOrFolder('''C:\Users\Administrator.BJ937-9371\Desktop\chepiao''',"file",{"hasPath":True})
objExcelWorkBook = Excel.OpenExcel('''C:\Users\Administrator.BJ937-9371\Desktop\車票資訊統計.xlsx''',True,"Excel","","")
For Each 車票路徑 In 車票清單
	Log.Info(車票路徑)
	With Each Mage.ImageOCRInvoice(車票路徑,{"Pubkey":"Eto6bgJvXg2S5nDg5HnW","Secret":"TqS9K3xGiY5sYzWQuaXy9x5wpr7H","Url":"https://mage.uibot.com.cn"},30000)
		Select Case .ExtractInvoiceType()
		Case Alias("train_ticket","火車票")
			車票号碼 = .ExtractInvoiceInfo("train_ticket","ticket_number")
			乘車日期 = .ExtractInvoiceInfo("train_ticket","departure_date")
			出發地 = .ExtractInvoiceInfo("train_ticket","departure_station")
			目的地 = .ExtractInvoiceInfo("train_ticket","arrival_station")
			車次 = .ExtractInvoiceInfo("train_ticket","train_number")
			座位類别 = .ExtractInvoiceInfo("train_ticket","class")
			身份證 = .ExtractInvoiceInfo("train_ticket","passenger_id")
			金額 = .ExtractInvoiceInfo("train_ticket","price")
		Case Else
		End Select
	End With
	iRet = Excel.GetRowsCount(objExcelWorkBook,"Sheet1")
	iRet = iRet + 1
	Excel.WriteRow(objExcelWorkBook,"Sheet1","A"&iRet,[車票号碼,乘車日期,出發站,目的站,車次,座位類别,身份證,金額],False)
Next