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應用簡介二(教育會考成績單PDF電子檔寄送範例)

因為疫情的關係,學校很多與學生相關的事務處理只能改為線上處理,例如畢業生的升學報名作業與考試成績單的發放,這次國中教育會考除了紙本成績單,心測中心還提供學生紙本成績單的PDF格式的電子檔,讓學校可以先把電子檔給學生,紙本等疫情穩定之後再請學生回來領。

這個想法是不錯,但是實務上學校如何在顧及資訊安全下傳給學生是一個挑戰,雖然每個學生的會考成績pdf檔心測中心都額外加上密碼保護,但是以資訊安全而言還是不適合大喇喇的放在網路上讓學生自行下載。

所以我是利用ExcelMail進行學生成績檔案的批次寄送,以下說明我的整個流程步驟。

1.首先蒐集九年級學生的電子郵件,拜這陣子遠端上課所賜,以新北市的學生應該都用過校務行政系統,新北市教育雲提供學生一個以校務行政系統帳號為帳號名稱的gmail郵件帳號,所以只要以公務需求請資訊組長協助提供全校九年級學生的校務行政系統帳號即可。(取得學生的自訂帳號大概像以下這個樣子,這個是示範自訂帳號資料不是真實資料,但是這不是學生的電子郵件地址,以新北教育雲所提供的gmail帳號格式是學生的自訂帳號+@apps.ntpc.edu.tw,所以還要將自訂帳號資料進行處理)

image

要自訂帳號資料加上@apps.ntpc.edu.tw字串可以用公式去完成,我是習慣直接用[資料處理過濾增益集]處理,這樣就建立好學生的電子郵件資料。

image

2.接下來要建立成績單檔案的目錄資料,也就是我們要建立電子郵件的附件檔案的目錄位址,我們在學生帳號的工作表新增一欄標題為"成績檔",然後建立要寄成績檔案目錄資料。

image

假設心測中心給的學生成績檔名是以報名時的班級+座號,那麼901班01號的成績檔名為90101.pdf,我們預先在d磁碟區建立1個名為"會考成績"的目錄,再將所有學生的會考成績檔案集中放到該目錄,那麼901班01號學生成績檔的目錄就是d:\會考成績\90101.pdf,所以我們在"成績檔:"這個欄位建立每一位學生的成績檔案目錄資料可以這樣做,先把工作表上班級、座號這兩欄資料複製到I、J這兩空白的欄位上,在H2資料格輸入d:\會考成績\,在K2資料格輸入.pdf,然後在L2資料格輸入=CONCAT(H2:K2)。

image

接下來分別用自動填滿(將滑鼠游標移到資料格右下角,游標符號變十字連按滑鼠左鍵兩次即可快速自動填滿)將H、K、L填滿資料,完成目錄資料建立。

image

然後將L欄目錄資料複製,以值的選擇性貼到"成績檔"欄位,這樣就完成我們要寄信的成績檔附件資料。

image

,接下來我們就用ExcelMail進行寄件的步驟說明:

1.首先要選擇一個可以大量轉信的郵件伺服器,因為我要寄給全部學生一次要寄出400封,免費的郵件帳號的郵件伺服器通常會有所限制,以避免使用者濫發廣告信,所以我沒有使用gmail,而是與學校的資訊組協調,請資訊組設定學校的郵件伺服器允許轉發學校的辦公室電腦寄出的大量信件。

2.打開上述已建立的學生郵件資料Excel檔案,啟動ExcelMail增益集,登入郵件帳號密碼,開啟ExcelMail的主程式畫面,選擇收件者姓名、E-Mail地址、信件主旨與內容等,最後附加檔部分要選取我們建立好的成績檔案的目錄資料。

image

image

3.注意!!!選完[附加檔案]後,還要勾選[批次對應附加檔案],如果沒勾選此設定,則所有學生都會收到全部學生的成績檔。勾完設定之後,程式會要求重新輸入名稱已便與原來的作區別。

image

我們輸入一個新名稱"會考成績",[附加檔案]的設定會變成下圖所示,這樣每位收件者只會收到自己的成績檔

image

4.設定好之後,還是建議先[測試寄信]不要直接[開始寄信],測試幾封確定沒有問題再正式寄出,我們測試5封看看結果如何?發現我們帳號收到5封帶有附件且主旨為會考成績單的信件。

image

打開第5封看看收件者是不是正確?附件檔案是否為正確?正確就可以開始寄信!

image

image

本文僅簡單介紹如何大量分別寄出每位收件者個人的檔案資料,ExcelMail更進階的功能,後續再做介紹!

ExcelMail應用簡介一(使用Gmail帳號進行Excel工作表資料批次寄送範例)

ExcelMail是甚麼樣的軟體?

ExcelMail是一個Excel的增益集,它能讓使用者直接在Excel中利用已建立好的電子郵件資料Excel工作表,進行寄送電子郵件的工作。

ExcelMail與其他常用的通用寄送郵件軟體(如gmail或outlook)有何不同?如果我們要傳遞的是公告統一的訊息,每一個收件者的內容都一樣,其實只要建立好通訊錄(郵件地址)讓郵件軟體依照通訊錄一次寄信即可,這個寄信的動作一般的郵件軟體就可以完成,但是如果要寄送的信件內容是針對個別收件者的,使用一般的通用郵件軟體就有點麻煩,除了一封封的個別寄信外,除非使用外掛的功能,例如gmail就有人開發外掛的類似的app,但不是所有郵件軟體都有這樣的外掛。所以使用者最後通常就是一封一封的寄,這樣處裡除了很耗時間,最怕是寄錯對象,尤其當收件者很多時,這個不是一個好的解決方式。

因為程式設計者在學校服務經常需要大量寄信給老師或學生個別收資料,所以才開發ExcelMail這個程式。以下用一個範例簡單介紹如何利用ExcelMail一次快速的寄出不同內容給不同收件者。

學校老師常用Excel來處理成績,一般處理完的成績要通知學生,通常除了印出來紙本給學生外,不然就是檔案公告,尤其現在line這種通訊軟體很方便,老師只要按一下檔案就出去了,但是學生或家長收到的通常是全部學生的成績單,這樣情況有利有弊,利弊在這裡就不多做討論。

為了避免傳遞學生成績的時候連其他人的成績也洩漏,我們可以透過這個增益集快速的寄給學生個人,也不需要再針對成績表進行刪除分割的作業。

舉例以下是一次小考的成績,我們只要在成績工作表上新增一個電子郵件的資料欄位,並將每位學生的電子郵件資料對應輸入到這個工作表上,那麼便可利用ExcelMail增益集的進行寄信。

image

首先到增益集工坊註冊一個帳號,收信啟動帳號已註冊的帳號密碼登入增益集工坊,在網路資料櫃找到ExcelMail下載的連結,注意請下載安裝正確的版本,建議使用的Excel必須是2010以後的版本,另外32位元版本的Excel只能安裝32位元版本的ExcelMail ,64位元版本的Excel只能安裝64位元版本的ExcelMail 。

下載後解壓縮執行setup進行安裝的程序

image

安裝前先將所有打開的Excel程式關閉,安裝時請不要變更安裝預設的資料夾目錄。

image

image

image

image

安裝完成後打開Excel程式,點選在工具列上[增益集]

image

會新增[寄送電子郵件]按鈕

image

點選[寄送電子郵件]按鈕,啟動ExcelMail出現以下輸入郵件帳號密碼的表單,代表已經安裝成功。

image

注意!!!要使用ExcelMail必須要有可使用outlook之類郵件軟體寄信的郵件帳號,部分免費的電子郵件帳號或學校提供的電子郵件帳號不允許使用outlook之郵件軟體收發信,只能透過瀏覽器連上郵件伺服器進行寄信,這樣的帳號是沒辦法使用ExcelMail寄信。

請參考所自己申請的郵件帳號的相關設定進行帳號密碼與伺服器設定,郵件服務商會有詳細說明。這裡我就以常用的gmail為例,現在如果直接輸入gmail帳號密碼應該無法連線,因為現在gmail有新增一些安全性的設定,google把一些第三方軟體如ExcelMail歸類於低安全性的應用程式,所以預設的gmail帳號安全設定是無法使用,必須將gmail帳號的安全設定進行修改,修改低安全性應用程式存取權的設定,同意可以使用google認定的低安全性應用程式。

image

但是如果您的google帳號是已經啟用兩步驟驗證功能的帳戶,就無法無法直接使用這項設定。這類帳戶必須使用應用程式專用密碼,才能存取安全性較低的應用程式設定,像我的帳號就已經啟用兩步驟驗證功能,所以我只能設定應用程式的專屬密碼,以下簡單說明設定的步驟:

1.登入google帳號,執行[管理你的google帳戶]

image

2.在帳戶首頁點選左列[安全性]的選項

image

3.在[安全性]頁面,找到[登入Google]區塊中的[應用程式密碼]

image

點選後google會要求再次輸入密碼,才能進行設定

image

4.密碼輸入後進入[應用程式密碼]。

image

因為我們要使用gmail服務,所以[選取應用程式]選擇[郵件]。

image

我要在pc上使用,所以[選取裝置]選擇[windows 電腦]。

image

5.設定之後按下[產生]

image

6.產生一組16位的密碼,這16位的密碼就是可以讓我們使用ExcelMail登入gmail的密碼

image

完成上述的設定我們就可以用ExcelMail登入我們的gmail帳號寄信,以下我們簡單示範如何利用ExcelMail批次將學生的小考成績寄給每一位學生,每位學生只會看到自己的成績。步驟如下:

1.打開上述的成績範例檔,注意ExcelMail設計之初為避免寄信寄錯對象,所以是會鎖定使用的工作表,如果要寄信的對象不在同一工作表,請匯整在同一個Excel工作表上。

2.點選Excel程式工作列[增益集]/[寄送電子郵件]叫出ExcelMail郵件帳號登入表單,表單預設的smtp與pop3伺服器是中華電信的郵件伺服器設定,ExcelMail的設定檔預設幾個常用的郵件伺服器設定,因為我要使用gmail所以點選右邊的下拉選單選擇gmail。

image

2.在郵件帳號輸入gmail的帳號,密碼要輸入所設定的16位密碼才能登入,另外gmail使用smtp寄信必須ssl認證,且要採用ssl才能登入pop3,所以必須將[smtp需要認證]、[smtp使用ssl]、[使用ssl登入pop3]都打勾,[記憶帳號密碼]打勾會在把密碼記錄在工作簿上,但是注意這樣可能會有密碼洩漏的疑慮,如果要這樣設定建議工作簿最好加密存檔。

image

3.按下表單[確定]鈕進行登入,成功後會出現ExcelMail的主程式表單,依序選擇寄件入者姓名與郵件地址,選擇收件者姓名的方式,就是在工作表中用滑鼠直接將姓名資料選取,再按下ExcelMail主程式表單收件者姓名欄位對應的[選取]按鈕,然後在[請輸入收件者選取區的名稱]對話表單中輸入名稱按下確定。

image

選好收件者姓名後再選取收件者郵件地址,只要選取工作表上郵件地址所在資料欄位任何資料格,再按下收件者E-Mail地址欄位的[選取]按鈕即可,ExcelMail程式會自動檢核對應收件者姓名,注意程式不會檢查郵件地址是否是正確可用。

4.接下來依序輸入信件主旨或信件前文,本文主要介紹如何將工作表上學生個別成績寄給他,所以其他的功能我們暫時跳過,接下來只要將工作表上全部學生的成績選取起來,ExcelMail主程式工作表上[插入選取資料]欄位按下[選取],接下來要勾選最下方[批次對應插入選取資料],注意!!!這個沒勾每個學生會收到全部同學的成績。

image

5.接下來建議先測試寄信,預防萬一信件資料有誤,點選主程式上[測試寄信]按鈕進行測試寄信,程式會依序出現以下的對話表單。

輸入要寄幾封測試信,預設是1封,這裡我示範寄5封。

image

寄出信件中的工作表資料是學生的成績,如果沒有欄位的抬頭(標題列)可能學生看不懂,所以我們選[是]

image

選擇哪一列作為欄位抬頭(標題列),在範例的工作表是第1列,所以我們用預設值即可!

image

按下[確定],程式便開始寄信,完成後程式表單下方會出現寄信完成的訊息!

image

因為測試信是寄到我們自己的電子郵件地址,接下來到gmail看一下結果

image

在gmail中我們看到有五封自己寄的信,打開其中一封看看,內容是正確的,這樣就可以執行正式寄信的動作。

image

ExcelMail3.2免費教育版與資料處理過濾增益集5.1發佈提供下載







程式版本 md5
資料處理過濾增益集5.1(64位元版) f12aa01e1758018d8161373f5c9b2f4e
資料處理過濾增益集5.1(32位元版) 17bcac30ee5d7b4dd20d250328d49ee3
ExcelMail3.2免費教育版(64位元版) 8bb1a828323173ab42aa6cdabebbedba
ExcelMail3.2免費教育版(32位元版) bedb57cca2e358b1d511b92d1fe05807

請至增益集工坊下載

資料處理過濾增益集5.0下載點

請至增益集工坊下載

32位元Office版本適用之資料處理過濾增益集5.0

檔案md5碼:

 

04734efae37435db21b36f82e58b7a60

檔案md5碼:64位元Office版本適用之資料處理過濾增益集5.0

 

 

b64ab752106cef772baec55c16447bd1

2.64位元版本資料處理過濾增益集5.0安裝編譯過程需要較長時間請耐心等候。1.系統未安裝Visual Studio 2010 Tools for Office Runtime,在安裝64位元Office版本適用之資料處理過濾增益集5.0時,安裝過程會出現錯誤訊息停止安裝動作,請至微軟網站下載Visual Studio 2010 Tools for Office Runtime 下載後進行安裝再重新執行資料處理過濾增益集5.0安裝。安裝注意事項:

資料處理過濾增益集5.0發佈倒數

經過這麼久距離上個版本3.9發佈已經間隔一段不算短的時間,主因是自己的懶散,次要的原因是前段時間自己孩子面臨升高中,大部分下班空閒的時間都忙於接送孩子上課補習。雖然陸續對程式有所增補,但是並沒有進行發表只是自己在工作上使用,直到最近才動念要發佈新的版本,原因是發現再不整理發表,有些寫的一年只用幾次的功能連自己都忘記如何操作,所以決定給自己一點壓力發佈,5.0版本算是一個階段的開始吧!

教子學習JAVA程式筆記-Hello World

子:什麼是程式語言?

父:程式語言(programming language)如果從英文的字面直接翻譯就是計劃性或程序性的語言,電腦運作必須由使用者下達指令,一個命令一個動作。如果要電腦執行一串工作,電腦不像人會自己變通,使用者必須將工作執行的流程順序先設想好,那一個先做那一個後做,那一種情況要做,那一種情況不做,把這一連串要電腦執行工作的指令進行有計劃性編排,其實這就是我們一般所謂的程式。可以讓人編排有計劃性的電腦指令(程式)即是程式語言,java程式語言只是上千種程式語言中的一種。

子:那為什麼選擇學習java程式語言?

父:就跟我們學習外語時會選擇使用度高的英語一樣,依照langpop.com在2013年透過網路統計,java是前十種最受歡迎的式語言(源維基百科),而隨著Android系統的行動裝置大量應用,使用java作為開發app的程式語言更為普及,所以選擇教你java程式語言。

父:要設計java程式在電腦要下載安裝jdk,並設定部分環境變數,相關的步驟可以參考這篇文章(教子學習JAVA程式筆記-開發環境設定)。

父:我們來寫我們的第1支程式,讓電腦向世界打招呼!

子:我們要用什麼軟體來寫java程式?

父:簡單的文字編輯軟體即可,現在我們剛開始學寫java程式,程式還很簡單所以我們使用WINDOW附屬應用程式中的"記事本"軟體來編寫即可。

父:為了提升我們課程的進行的效率,我們要先做一些設定,首先在WINDOW的桌面按滑鼠右鍵在浮動視窗中選取"新增"\"資料夾",在桌面新增一個資料夾,把資料夾重新命名為JL,未來我們所有的程式都要集中在這個資料夾中,方便管理。

image image

父:用滑鼠左鍵連續點擊JL資料夾兩次,進入JL資料夾,一樣按滑鼠右鍵在浮動視窗中選取"新增"\"資料夾",新增一個資料夾改名為P1,我們要把第1支程式放在P1資料夾,滑鼠左鍵連續點擊P1資料夾兩次,進入P1資料夾,在這個資料夾視窗一樣按滑鼠右鍵在浮動視窗中選取"新增",但是選擇"文字文件",新增一個文字檔。

image

image image

子:為什麼要這樣做?

父:這樣做我們只要點擊這個新增的"新文字文件.txt"就可以快速啟用記事本軟體,當然也可以點選 WINDOW 開始\附屬應用程式\記事本。

image

父:打開"新文字文件.txt"之後,在"記事本"軟體的編輯視窗輸入以下內容

image

父:你已經學過簡單的英文,應該看得出來這段文字雖然都是英文字,但是看起來不是一般的英文,的確這是一段簡單的java程式,但是這段程式文字還不能直接叫電腦做任何事,原因是這段程式是給人讀的,不是給電腦讀的。

子:什麼意思?

父:對人而言可以用文字、圖像與聲音來傳遞訊息,但電腦傳遞訊息基本就是利用電流訊號,例如我們可以把電流通過與不通過代表兩個訊息,譬如通過代表1,不通過代表0,這樣只要把多組的電流通過與否的訊號進行排列組合就可以代表多種訊息,所以我們經常會看到一些文章會以0和1兩個數字組合的代表電腦的訊息資料。所以我們要把上述這段程式進行轉換成電腦可以接受的形式。

父:對使用Java語言寫的程式,我們必須使用一支jdk所附的名為javac的編譯器程式把純文字的程式檔案轉換成位元格式的檔案,執行的時候再利用jdk所提供的java直譯器讀取此二位元檔並轉換成電腦指令驅動電腦。

子:什麼是編譯器?

父:在維基百科上的說明,編譯器(Compiler),是一種電腦程式,它會將用某種程式語言寫成的原始碼(原始語言),轉換成另一種程式語言(目標語言),這種編譯後的程式語言可能是專門為特定電腦機器設計的指令碼(機械碼),也可能是不針對特定的電腦機器設定的指令碼(位元碼),兩者的差別在於前者因為是針對特定電腦所以無可攜性(例如Window 版本的Office軟體不能直接拿到蘋果Mac上直接使用),後者可以透過直譯器讓同一份程式碼在不同類型的電腦上執行,所以具有可攜性(例如利用java程式語言開發的軟體,同一份java的位元碼在不同的平台都可以使用,最典型的就是一些網頁上的java applet程式,在Window可以使用,在蘋果Mac也可以使用,只要該平台有安裝適當的java直譯器)。

子:什麼是直譯器?

父:直譯器(英語:interpreter),也是一種電腦程式,能夠把高階程式語言一行一行直接轉譯執行(維基百科)。簡單的說,你可以把直譯器看成人和電腦之間的翻譯機,以我們第1個程式碼為例,它的內容看起來是比較接近人類能理解的內容,但是電腦沒辦法直接讀懂,所必須透過編譯器javac把這段程式碼編譯位元碼,再透過直譯器java轉成電腦可以接受的指令內容。

父:為了方便教學,有些規定要先說明,程式碼本身不需要也不能標記行號,標記行號java程式編譯器會出現錯誤訊息。但是為了方便教你,我會在說明程式內容時像以下範例這樣幫程式碼標記行號。

clip_image001

父:程式編寫完成要另儲存成java程式語言規定附檔名格式為.java的文字檔,不能儲存成.txt,依照java程式的規定這支程式的檔名要儲存為Hello.java,改儲存其他的名字(例如存為test.java),javac編譯器在編譯時會產生以下錯誤訊息。這是java程式的規定,在上述的程式第1行程式 public class Hello 代表這支程式的對外宣告它的名字叫Hello,所以java程式語言規定這個檔案必須存成Hello.java ,各種程式語言都會有些規定,為什麼要如此規定?原因很多,等遇到再說。

image

父:要如何使用javac來編譯Hello.java,首先要找到javac在那裡?在(教子學習JAVA程式筆記-開發環境設定)這篇文章提到要把要把WINDOW的PATH環境變數加入C:\Program Files\Java\jdk1.8.0_144\bin,讓作業系統能對應到該目錄以執行java的相關程式。javac.exe就在C:\Program Files\Java\jdk1.8.0_144\bin此目錄中,因為已經設定了環境變數,所以在命令提示視窗游標輸入javac –help 會列出javac的使用參數。

image

所以我們要執行編譯Hello.java,只要在命令提示視窗輸入javac  C:\Users\ab\Desktop\JL\P1\Hello.java ,按enter鍵執行編譯,完成後在Hello.java所在目錄C:\Users\ab\Desktop\JL\P1\ 會產生一個名為Hello.class

image

,這個檔案就是編譯後的位元檔案,但是這個檔案並不能直接執行,必須利用java.exe 這支直譯器來讀取執行,首先一樣在命令提示視窗執行,在游標處輸入 cd  C:\Users\ab\Desktop\JL\P1\,cd是DOS切換所在目錄的指令,先要將目錄切到Hello.class所在的目錄,再輸入 java Hello ,注意Hello後面不需要再加.class,如果命令改成java  Hello.class 反而會產生錯誤訊息。執行的結果是在命令提示視窗輸出Hello, world這句英文。

image

父:看完執行的結果回過來看原來的程式碼,這支程式主要執行的就是第三行的程式碼 System.out.println(“Hello, world");
clip_image001

System.out.println()是java的函數,它的功能是可以在螢幕輸出()中的參數,像上述的程式碼System.out.println(“Hello, world");其中的參數就是"Hello, world"。

父:這支程式的其他部分,我們在下一節再來介紹。

教子學習JAVA程式筆記-開發環境設定

首先要開發JAVA程式,必須依據所使用的作業系統下載安裝適合的JDK版本,一般程式軟體的開發套件簡稱為SDK(Software development kit),而所謂的JDK就是(Java Development Kit),也就是JAVA程式軟體的開發套件。

可以透過以下網址http://java.com 找到Java相關資源的網址,點選

image

可以找到學習JAVA程式的相關資源與下載開發軟體(https://go.java/developer-opportunities/index.html),點選 Download JDK8

image

在下載網頁中會列出目前最新版本各平台的JDK下載的連結

image

選擇符合作業系統的版本,例如目前我使用的作業系統是32位元的WINDOW 7,所以我要選擇下載的版本是 Windows x86 190.94 MB  jdk-8u144-windows-i586.exe ,如果是64位元的WINDOW作業系統則選擇  Windows x64 197.78 MB  jdk-8u144-windows-x64.exe ,注意下載前要點選 Accept License Agreement 同意授權的規範才可下載。

下載後執行安裝,只要依安裝程式的指示,執行下一步安裝的過程,比較需要注意的是JDK安裝的目錄位置,可以自己指定安裝目錄也可使用預設的安裝目錄,但不管如何一定要知道JDK安裝在那裡,以便後續環境變數的設定。因為JDK不像一般套裝的程式開發軟體(IDE)會將相關的編輯、編譯、執行、除錯等程式整合在操作介面中,讓使用者很方便操作只要專注在程式撰寫即可,JDK有點陽春我們必須自行設定一些環境變數讓我們在JAVA程式編譯與執行比較方便,以本例預設安裝的JDK目錄為C:\Program Files\Java\,因為JAVA版本會不斷更新,所以在目錄中會看到幾個以版本號為資料夾名稱的資料夾(系統曾經安裝過的),我們安裝的版本JDK8是jdk1.8.0_144。

image

進入C:\Program Files\Java\jdk1.8.0_144,會看到所有JDK程式的相關程式

image

其中bin資料夾是java相關程式執行檔所在的資料夾,所以我們要把WINDOW的PATH環境變數加入C:\Program Files\Java\jdk1.8.0_144\bin,讓作業系統能對應到該目錄以執行java的相關程式。

如何設定(環境變數以WINDOW 7為例)?

1.叫出"控制台"

image

2.點選"系統"

image

3.在"系統"介面點選左下角"進階系統設定",在"系統內容"\"進階"的頁面下"環境變數"

image

4.在"環境變數"視窗中下方"系統變數"找到"Path"這個系統變數,點選下方"編輯"按鈕image

5.在"編輯系統變數"視窗滑鼠游標進入"變數值"輸入位置,不要更改或刪除原有的值,以免影響系統相關程式執行,我們要在此變數值後加入jdk的目錄值,以本例請加入

;C:\Program Files\Java\jdk1.8.0_144\bin ,記得目錄前要加上;號分隔,再按"確認"按鈕。

image

6.測試我們的設定是否則成功,同時按下WINDOW鍵+R鍵,叫出window"執行"的視窗,在"開啟"輸入cmd,按"確定",開啟命令提示字元視窗

image

image

7.在命令提示字元視窗輸入游標java –version,如果有出現以下訊息代表已經設定成功。

image

『資料處理過濾增益集3.9發佈』

 資料處理過濾增益集3.9發佈訊息,最近有些網友來信建議與反應一些bug問題,針對網友的反應進行一些更新與修正如下

1.更新條件處理功能介面,提供指定寫入欄列

 

 image

2.更新加入單一參數公式功能介面,提供指定寫入欄列

image

3.新增計算PR值功能。

 

4.新增計算排名百分比功能,整合PERCENT.RANK.EXC與PERCENT.RANK.INC 兩個函數。

image

5.修正計算排列組合中設定數字功能無法正常運作的bug。

image

『資料處理過濾增益集3.8』新功能「產生相片檢核檔」

這學期新增一項數位學生證業務,要協助五十幾所高國中小製作有悠遊卡功能的學生證,在開學前開了一次會議,會議中有學校反應以往的檢核程式有一個缺點,就是學生的相片檢核檔列印的時候沒有一班同一頁,一頁裏面有其他班級的學生,檢視以前的相片檢核檔的樣式類似下圖,但是所有學生的相片是連續排在頁面中,所以雖然程式有依班級排序,但是因為一頁呈現的人數不一定剛好一班會有其他班的資料,使用者希望一個班的資料在一起,不要混有其他班的資料在其中,否則註冊組必須手動剪裁給各班,這項要求依我的了解應該不會太難,只要報名進行修正就好,在會議中答應各校會請設計檢核程式的軟體公司進行修改。

image

在還沒有得到軟體公司的答覆是否可以修改,離開學已經很接近了,為了避免開天窗,就思考如果單純只是列印學生的相片檢核檔,其實這個功能在以前幫學生進行升學報名的時候,把收來的相片電子檔要印出來給學生檢查是否本為本人已經用『座位表製作增益集』處理過,所以就把以前的程式碼修改做為一個預備方案,不過後來電腦公司有按照需要進行修改,這個預備方案就沒有用上,不過我想其他非新北市的學校註冊組長也許也會用上,所以把它使用的方法分享出來。

我把這個功能加入『資料處理過濾增益集3.8』中[特殊操作]\[產生相片檢核檔]。

image

程式的表單如下:

image

 

要利用此功能產生相片檢核檔首先要建立一個Excel工作簿其中要有一個工作表(例如下工作表一),工作表中必須提供基本的幾個欄位資料,第一列必須是標題列,除學生的基本資料外,其中"相片"這一欄必須是學生資料對應的相片檔名(不需要附檔名,因為在選擇[相片格式]時會自動對應相片的格式),另外要有分割檔案的依據欄位,例如我們要一個班一個檔案,必須要有"班級"這個欄位資料,其他欄位資料主要是要標記相片提供檢核的目的,例如"姓名"或"座號"。

image(工作表一)

 

以下分別將表單上參數說明

1.[相片大下]:此下拉選單提供1吋與2吋的大頭照選項

2.[相片格式]:此下拉選單提供.jpg、.bmp、.png、.gif等檔案格式選擇

3.[輸出版面大小]:此下拉選單提供輸出之檔案版面的選擇,有B5、B4與A4、A5的選擇

4.[輸出檔案格式]:此下拉選單提供.docx、.pdf、.xps選擇

5.[指定分群組欄位]:此參數主要是提供相片輸出檔案內容分割的依據,在學校通常是以班為單位,所以必須在工作表上建立學生班級的欄位,程式會自動進行依此欄位進行排序。

6.[相片資料所在目錄]:指定照片所在目錄

7.[相片檔名資料範圍]:即上述"工作表一"中"相片"那一欄,把產生的資料範圍選起來,程式只會產生選取的範圍部分。

8.[相片標記資料欄位]:這個參數是要加入相片底下的標記,例如"年級"、"班級"、"座號"、"姓名"等,建議不要選擇太多欄位,因為相片底下標記的文字長度與相片寬度有關,2吋相片約提供11個12點字的長度。

讀者可以下載範例,以下表單的參數去操作試試看。

 

image

產生的檔案如下,一個班一個檔案。

image