樣本學習kettle之Excel Writer步驟,kettlewriter

來源:互聯網
上載者:User

樣本學習kettle之Excel Writer步驟,kettlewriter

樣本學習kettle之ExcelWriter步驟

 

ExcelWriter步驟可以向excel模板檔案中填寫內容的一種方法,並且可以往同一檔案的不同sheet中寫內容。本文通過樣本詳細講解,通過一個轉換產生報表。

ExcelWriter步驟是kettle4.1以上版本才有,同時我們也使用“Block until steps finish”步驟(kettle4.1版本有),如果你使用版本是3.2或4.0,就使用自訂javasc步驟代替。本文的範例程式碼在這裡下載。

 

最終匯出報表檔案格式

樣本報表檔案主要內容是6個月的銷售和費用資訊,包含三個sheet: “Sales Chart”sheet 包含一個圖表顯示每個月每個類型的銷售情況。

      “SourceData“sheet是需要通過kettle填入的來源資料,包括一些欄位、一些計算值以及餅圖。

      “Metadata“sheet是報表本身的一些資訊,產生日期,轉換的名稱,在那台主機上產生的。

 

模板檔案

      模板檔案除了格式,輸入之前沒有資料,“SourceData“sheet需要填入相應的資料,其他的欄位自動計算(已經有了公式)。

 

“Metadata“sheet也需要填入一些資訊。


 

使用kettle往模板檔案中填入資料

      分析上面模板檔案,需填入資料的進入點,共有四個方面需要插入資料。

1.     “SourceData“sheet上的year單元格;

2.     “SourceData“sheet上的銷售資訊資料;

3.     “SourceData“sheet上的費用資訊資料;

4.     “Metadata“sheet的單元格;

 

因為有四個地方需要輸出資料,所以需要在轉換定義四個Excel Writer步驟。問題是kettle的轉換時並存執行的,如果四個步驟同時寫一個excel檔案,則會產生錯誤。因此需要確保按順序執行。我們可以通過定義四個轉換,然後在job中順序調用四個轉換,因為job是順序執行的,這樣就覺得不是很方便。通常不相關的資料要被填入到同一個excel檔案,最好能定義在一個轉換中,便於維護。本文通過另外一種方式實現順序執行,請看:

確保順序執行

      轉換中寫excel檔案需四個流程步驟,按照如下順序:year、銷售、費用以及報表元資訊單元格。Excel Writer步驟需要配置寫到同一個檔案,即從模板檔案拷貝的檔案。因此,第一步(year寫入步驟)配置使用模板檔案並建立新的輸出檔案。其他的excel寫入步驟只需要配置輸出檔案(因為已經存在了),但同時也需要選中“wait for first row before creating file”選項(在接收到資料前不建立檔案),這樣是確保在接收到第一個資料後才尋找輸出檔案。

      如何做到延遲,在接收到第一行資料時,前面Excel寫入步驟的所有操作都執行完畢,這裡就需要“Block until steps finish”阻止步驟。year寫入步驟是第一個執行,所以需要配置模板檔案和建立輸出檔案,並寫入year資料。銷售寫步驟等待year步驟完成,費用步驟等待銷售步驟完成,元資訊步驟等待費用步驟。結果就像一個精密的鏈式步驟,彼此等待,最終完成各自資料的寫入。

      如果你使用3.2或4.0版本,阻止步驟無效,查看附件中相應的版本,使用javascript步驟代替。

樣式問題

      往模板檔案中寫資料,應該保留樣式不要改變,所以在Excel Writer步驟的相應的選項選中。

      另外活頁簿中的公式需要重新計算,因為Excel版本、檔案類型以及可能其他的一些情況,當開啟產生的檔案時不自動更新計算單元格的值,Excel寫步驟可以用自動重新計算單元格公式,有相應的選項供使用,但是一些函數或命名類型暫時不被poi庫支援,可能報錯,嘗試重新編寫公式、更改xls檔案類型或手工啟用技術(ctrl+shift+alt+F9)。

 

 


kettele Excel匯入oracle怎操作?

可以設定按某個欄位匹配。
1、要注意字元類型,這點容易出錯;
2、excel表格中的欄位名字要修改為何oracle中表的欄位名字對應(名字一樣,順序一樣);
3、步驟很簡單,和kettle平時導資料步驟差不多。
 
在kettle中怎把一個excel的多個sheet頁資料匯入一個表中

增加檔案時可以選擇sheet的,你輸入檔案選擇excel輸入的設定中注意一下。
 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.