ExcelMail應用簡介三(如何確保大量批次寄信資料的正確性與安全性?以五專分區聯合免試報名作業處裡範例)

為什麼會想寫這篇文章?因為最近又收到上級單位來函要求保護學生個資的公函,大概是因為最近又爆發學校幫學生集體報名考試,不慎將大筆學生個資洩漏的情況,所以教育局再次發函提醒基層的業務單位。

 

image

 

資料數位化帶來大量的便利性,例如學籍資料沒有數位化之前,畢業學生要回校補辦畢業證書,註冊組要從存放紙本學籍檔案室調出學生的資料,要耗費不少時間,學籍數位化之後,承辦人只要動動鍵盤滑鼠就可以完成。但凡事很難只有利而沒有弊,學籍資料數位化之後使用上很便利,但是資料安全管理沒有做好,一個隨身碟就把所有資料帶走,而紙本的學籍資料使用上是不便又佔據大量空間,但也是因為這樣的缺點,想拿的人會考慮成本。但這不是說數位化是錯的,現代化的社會數位化是利大於弊的必然發展,學校單位會出現個資外洩的事故,絕大部分是承辦者看待個資數據的心態,現在是數據時代,數據已經變成有價的東西,尤其是個人資料。有價值就會引來覬覦,所以保管資料的人要有一種態度,你保管的不只是數據,而是有價的財產。

以我擔任教務處試務組工作為例,就屬於經常會接觸到大量學生個資的單位,也常需要傳遞大量學生的個資。現在各種考試入學報名,大部分承辦的委員會都要求學校以集體報名方式辦理,所以辦理學生集體報名的業務承辦人只要處理不慎,可能就會面臨大量個資外洩的問題。一旦個資外洩,後續的處理就是一場災難。

所以在我工作過程中,我會同時關注學生報名資料的正確性與安全性,為什麼會想要開發ExcelMail這個工具,其中一個目的是希望資料能夠直接給當事者,避免透過第三者轉達造成資料外洩的疑慮。在前面兩篇文章我們說明如何利用ExcelMail大量寄送個別收件者的信件內容與檔案,我們看到利用ExcelMail的便利性,但是便利之餘也存在一些安全性風險,常遇到的就是寄錯收件對象,寄出去的電子郵件如潑出去的水,萬一這情況又發生在信件中有學生的個資,事情就會變得很難處哩,弄不好說不一定還會被告,所以一定要避免這樣的情況發生。

 

我以今年五專分區聯合免試報名作業為例,以往五專報名作業流程包括兩部分實體紙本報名資料與報名費的收取,及學生報名資料電子檔案的建立與上傳。今年因為三級警戒的關係學生沒有辦法到校,原本預計發給學生檢核的紙本個人五專報名資料,只能轉成電子檔透過網路方式傳遞讓學生進行檢核確認,ExcelMail恰好能派上用場。

另外因為五專報名除了填寫網路資料還要繳交紙本的報名表,往年學生紙本報名表收回來後要耗費大量的時間去逐一檢查學生的報名表手寫的資料是否正確,如果有錯還要請學生修改簽名蓋章,經常要來回好多次。但是今年因為疫情的緣故沒辦法讓讓學生回校,所以紙本報名表如果有錯要修改是一件麻煩的事,所以釜底抽薪的做法就是不讓學生手寫報名表,幫學生將報名表套印好存成PDF檔案,寄給學生檢核如果沒有錯請學生自己印出來給家長簽名,學生若發現報名表資料有錯,請他們回電子郵件給我,再幫他修正之後產生新的報名表PDF再寄給他。

在上述我們作業的過程中有多次的資料傳遞,我關注的有兩個重點:一、如何將資料正確的傳給正確的收件者?二、如何保護寄出的資料不被不相干的人拿走?

針對第一點:要避免這種情況發生,只單靠在大量寄信之前寄件者細心人工檢查是不夠的,很難保證不會出錯,我自己就出過幾次這樣的錯誤,後來我採取的是透過程式進行資料比對,無法用程式比對的資料再用人工檢覈。所以降低採用人工檢覈的情況,就要想辦法將寄給學生的資料儘量做成可用程式比對的型態。

以寄給學生五專報名表PDF檔為例,我的作法是先建立學生的基本資料與報名學校志願Excel工作表

image

,然後以上面的Excel工作表為Word/[郵件]的收件者來源資料,修改委員會提供的報名表Word檔案為合併列印檔案樣版。

image

(關於上述兩個檔案的範例歡迎來信索取quiz_cssh@mail.cssh.ntpc.edu.tw)

執行合併以產生所有登記報名五專學生的報名表在一個WORD檔,再利用WORD程式提供轉存成PDF檔案。

image

因為要將每個學生的報名表個別寄給學生,所以必須將已經轉成PDF的全部學生報名表PDF檔進行分割成一個人一個檔,網路上有很多免費的分割PDF檔案的軟體,我是使用PDFill這套軟體,有興趣可以到他們的官方網站下載https://www.pdfill.com/,PDFill這套軟體提供一個PDFill FREE PDF Tools,裡面有蠻多好用的處理PDF檔案的小工具。這裡我們按下表單上[2.Split or Reorder Page ]這個按鈕來分割報名表的PDF檔。

image

按下[2.Split or Reorder Page] 選擇要分割的PDF檔案。

image

設定分割PDF檔的參數,設定下圖紅色框起來的兩個參數,整個北區報名表PDF檔共有68頁,程式不會呈現要自己打開PDF檔看它共有幾頁,全部68頁都是分割的對象,所以設定Split Pages From 1 To 68,再來因為每個學生的報名表是正反兩面,所以要每2頁分割為一個檔案,所以設定Extract Pages As Separate Files Pages 2 。

image

設定好按下[Save As…],選擇存檔的目錄與檔名的開頭,因為按照我們的設定總共會產生34個PDF檔案,程式會自動編號存檔。我們在檔案名稱輸入S,按下[存檔]完成分割之後,程式會打開存檔的資料夾,就可以看到S_Part_1、S_Part_2、S_Part_3…….。

image

image

這樣的檔名排列順序會和我們作為合併列印資料來源的Excel工作表資料中的資料順序一樣,所以將這個工作表的班級、座號、身分證統一證號與學生姓名等四個欄位複製到新的工作表,注意資料的順序不要異動(以免我們要對應的學生報名表檔案目錄與學生資料對不齊),用此新的工作表來做為ExcelMail的寄件通訊錄資料。

image

接下來我們要在工作表上加入學生的電子郵地址資料,前面j文章我們示範建立學生電子郵件帳號,我們以上面的範例作為電子郵件地址的資料來源,如何快速的將報名學生的工作表加上學生的電子郵件地址資料?我是利用[資料處裡過濾增益]\[正規比對資料過濾]\[工作表資料擷取]

image

在[工作表資料擷取]表單進行擷取參數設定,先在工作表[五專聯合免試報名名單]的E1輸入"電子郵件"作為標題,我們要把擷取出來的電子郵件寫到這個欄位,然後將工作表上"班級"、"座號"這兩欄的資料選取作為[進行比對的條件範圍]這項的參數資料。

image

再選取工作表E欄作為[進行資料寫入的欄位]這項的參數資料

image

切換到[9年級電子郵件]工作表,一樣選取"班級"、"座號"這兩欄資料作為表單[資料比對範圍]的參數範圍

image

接下來選擇[9年級電子郵件]工作表的E欄作為[擷取資料的欄位或寫入的資料(以#為開頭)]的參數

image

設定參數後按下[確定]即可再[五專聯合免試報名名單]工作表上E欄電子郵件的寫入符合"班級"、"座號"的電子郵件地址資料。

image

建立好收件者的電子郵件地址資料,接下來要將我製作好的學生五專報名表PDF檔案設定為郵件的附加檔,首先我們要先對檔案名稱做更改,像S_Part_1.pdf這樣的檔名不容易辨識,所以打算將報名表檔名更改為學生的班級+座號+學生姓名.pdf,例如[五專聯合免試報名名單]工作表上第1位學生是901班01號漢宏林,我們把S_Part_1.pdf改成90101漢宏林.pdf,這樣我們要打開檢覈報名表是否有寄錯會比較方便。如何快速完成更改檔案的名稱的作業?我在[資料處裡過濾增益]\[WORD表單統計工]設計幾個處裡檔案目錄的功能,以下依序說明如何利用這幾個功能來完成批次檔案名稱修改的作業。

image

首先我們要利用[讀取檔案目錄資料]將檔案目錄資料寫入工作表,先在[五專聯合免試報名名單]工作表上選取資料格H2,這個動作是讓程式將讀取的目錄資料依序寫入H2、H3、H4….,將[檔案類型]切換到PDF檔案類。

image

image

按下[讀取檔案]開啟報名表PDF檔案所在目錄,將所有報名檔案依序選取,然後按下[開啟]

image

[資料處裡過濾增益集]會將選取的PDF檔案完整的目錄位置依序寫入工作表

image

接下來我們要利用[資料處裡過濾增益]\[WORD表單統計工]\[更改檔案名稱]來進行檔案名稱的批次更改,首先我們將工作表A、B與D欄複製至I、J與K欄,利用[資料處裡過濾增益]\[資料型態轉換]\[資料格以字串形式合併]將三個欄位資料合併。

image

然後選取L欄複製再以選擇性貼上,選取以值貼回L欄,然後刪除I、J與K欄,讓H欄pdf檔案目錄資料與I欄班級座號姓名資料相鄰。

image

接下來我們再將I欄班級座號姓名每筆資料前面加上"D:\工作目錄\ExcelMail範例\"字串,後面加上".pdf"字串。可以用公式處裡,我直接利用[資料處裡過濾增益]\[正規比對資料過濾]\[工作表資料內容處理]

image

將I欄班級座號姓名每筆資料選取,點選[工作表資料內容處理]表單中[資料處理範圍]的[選取]按鈕將選取的工作表資料範圍設定為[資料處裡範圍],同樣也選取設定為[資料處理後寫入的欄位],這樣處理完的資料直接會覆蓋原來的資料,接著在[加在資料前的字串]輸入"D:\工作目錄\ExcelMail範例\",在[加在資料後的字串]輸入".pdf”,再按下[確定]。

image

即可產生要變更的新檔名資料。

image

接下來將H欄與I欄檔名資料範圍選取,按下[資料處裡過濾增益]\[WORD表單統計工]\[更改檔案名稱]即可批次更改檔名。

image

image

程式會提醒使用者如果更改將無法直接復原,按[是]即執行更改。打開原來放報名表的目錄發現,原本的檔名都被修改為班級座號姓名.pdf 。

image

接下來我們只要將I欄的資料作為ExcelMail寄信的附件資料[請參考ExcelMail應用簡介二(教育會考成績單PDF電子檔寄送範例)]來源即可。但是這個檔案含有學生個人的資料,所以我通常會把檔案加密多個保險,預防寄錯對象。因為用word轉換產生的pdf檔案分割之後,要以pdf進行批次加密有點麻煩,word2019可以讓使用者再轉換成pdf時輸入密碼,PDFill也可以讓我們進行pdf加密,但是目前都要逐一的個別檔案加密,而且我們每次寄信的檔案不一定是pdf檔,所以我直接利用免費的7-zip進行檔案壓縮並加密,7-zip提供用以命令列輸入指令方式壓縮加密的功能,我把利用7-zip壓縮解密的功能寫到[資料處裡過濾增益]\[特殊操作]\[利用7z批次建立縮檔],要使用這個功能必須先安裝7-zip,使用可以到7-zip的7-Zip 繁體中文版官方網站下載,下載安裝之後。點選[資料處裡過濾增益]\[特殊操作]\[利用7-Zip批次處理壓縮檔]。

image

第一次啟用這個功能,要在程式表單中[指定7-Zip壓縮程式所在目錄]設定7-Zip執行檔目錄位置。

image

按下[瀏覽]尋找7-Zip安裝的目錄。

image

接下來我們要建立加密的zip檔,只要在範例工作表中I欄的下一欄J輸入每一筆檔檔要設定的密碼即可,每個學生應該知道他自己的身分證字號,我們就用這個當作密碼,我們將範例工作表C欄的資料複製貼到J欄。(範例中的示範的身分證字號是隨機產生非真的身分證字號)

image

接下來選取I、J兩欄中的資料區域,將區域指定為[7-Zip處理檔案目錄資料範圍]的範圍

image

設定好後按下[確定],程式執行完後打開學生報名pdf檔所在的目錄,會看到與pdf檔案相同的zip壓縮檔。

image

試著打開其中一個壓縮檔,確定輸入該學生的身分證字號是可以開啟檔案即可確定產生的檔案是正確的壓縮檔。

image

我們只要再利用[資料處裡過濾增益]\[WORD表單統計工]\[讀取檔案目錄資料]將壓縮檔的目錄資料讀取到工作表及可,為了避免寄出的檔案被修改產生爭議,我們可以將壓縮檔的md5碼也寄給學生,要產生md5碼只要將[讀取檔案目錄]表單上[建立檔案MD5碼]設定勾選,再讀取檔案即可。

image

image

最後只要按照ExcelMail應用簡介一(使用Gmail帳號進行Excel工作表資料批次寄送範例)ExcelMail應用簡介二(教育會考成績單PDF電子檔寄送範例)這兩篇文章的操作,即可將信件寄給學生,記得信件中提醒學生請用自己的身分證字號為密碼解壓縮檔案。

結語:以上是我在今年的五專聯合免試報名作業的報名表檔案透過ExcelMail寄送時所作的相關處理流程與大家分享,寫得有些瑣碎,最後把我有應用的相關軟體應用整理如下,希望對相關的同行有所幫助。


a.利用google表單的應用來進行資料調查與反饋。(例如信件資電子郵件地址的蒐集與信件收件狀況調查)


b.利用「資料處裡過濾增益集」裡的資料擷取功能來降低資料對應出錯的機率。


c.利用office word 產生自動化文件資料並轉成pdf格式檔案。


e.利用「資料處裡過濾增益集」裡的檔案目錄功能來更改檔案名稱,再利用資料擷取功能降低資料對應出錯的機率。


f.利用「資料處裡過濾增益集」裡的使用7z批次壓縮功能來進行檔案壓縮與加密(避免檔案太大,大量)

ExcelMail應用簡介三(如何確保大量批次寄信資料的正確性與安全性?以五專分區聯合免試報名作業處裡範例) 有 “ 2 則迴響 ”

    1. 如果你是用gmail的帳號寄件,請參考
      ExcelMail應用簡介一(使用Gmail帳號進行Excel工作表資料批次寄送範例)
      另外收件的郵件伺服器是否有進行擋信設定,例如我們學校郵件伺服器會限定郵件的大小,如果信件太大也會被擋掉!

發表留言