This is an automated email from the ASF dual-hosted git repository. sgoeschl pushed a commit to branch FREEMARKER-144 in repository https://gitbox.apache.org/repos/asf/freemarker-generator.git
commit 629673ebc6c40930a9501acf6e8fa924612db9fb Author: Siegfried Goeschl <[email protected]> AuthorDate: Wed Jun 17 19:48:02 2020 +0200 FREEMARKER-144 Proof Of Concept for providing DataFrames --- .../src/site/markdown/cli/tools/dataframe.md | 18 +++++++++++++++--- .../templates/excel/dataframe/transform.ftl | 22 +++++----------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/freemarker-generator-cli/src/site/markdown/cli/tools/dataframe.md b/freemarker-generator-cli/src/site/markdown/cli/tools/dataframe.md index c3bd6f9..00b5a29 100644 --- a/freemarker-generator-cli/src/site/markdown/cli/tools/dataframe.md +++ b/freemarker-generator-cli/src/site/markdown/cli/tools/dataframe.md @@ -7,8 +7,8 @@ A `DataFrame` allows declartive filtering and transformation of tabular data, i. Currently the following sources are supported * Apache Commons CSV Parser -* JSON arrays -* Excel sheets (to be done) +* JSON arrays represented as collection of maps +* Excel sheets represented as rows ## CSV Examples @@ -160,7 +160,19 @@ being parsed as a list of maps and print the JSOB as dataframe ## Excel Examples -Let's transform an Excel Sheet to a dataframe being printed +Let's transform an Excel Sheet to a `DataFrame` being printed using the following template + +``` +<#assign dataSource = DataSources.get(0)> +<#assign workbook = ExcelTool.parse(dataSource)> +<#list ExcelTool.getSheets(workbook) as sheet> + <#assign table = ExcelTool.toTable(sheet)> + <#assign df = DataFrameTool.fromRows(table, true)> + ${DataFrameTool.print(df)}<#t> +</#list> +``` + +which is rendered by the following command line invocation ``` ./bin/freemarker-cli -t templates/excel/dataframe/transform.ftl site/sample/excel/test.xls diff --git a/freemarker-generator-cli/templates/excel/dataframe/transform.ftl b/freemarker-generator-cli/templates/excel/dataframe/transform.ftl index 78540ef..d172bec 100644 --- a/freemarker-generator-cli/templates/excel/dataframe/transform.ftl +++ b/freemarker-generator-cli/templates/excel/dataframe/transform.ftl @@ -1,4 +1,3 @@ -<#ftl output_format="plainText" > <#-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file @@ -16,20 +15,9 @@ under the License. --> <#assign dataSource = DataSources.get(0)> -<#assign name = dataSource.name> <#assign workbook = ExcelTool.parse(dataSource)> -<#assign date = .now?iso_utc> -<#---------------------------------------------------------------------------> -<@writeSheets workbook/> - -<#---------------------------------------------------------------------------> -<#-- writeSheets --> -<#---------------------------------------------------------------------------> -<#macro writeSheets workbook> - <#assign sheets = ExcelTool.getSheets(workbook)> - <#list sheets as sheet> - <#assign table = ExcelTool.toTable(sheet)> - <#assign df = DataFrameTool.fromRows(table, true)> - ${DataFrameTool.print(df)}<#t> - </#list> -</#macro> +<#list ExcelTool.getSheets(workbook) as sheet> + <#assign table = ExcelTool.toTable(sheet)> + <#assign df = DataFrameTool.fromRows(table, true)> + ${DataFrameTool.print(df)}<#t> +</#list>
