Ofbiz & Excel Export

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Ofbiz & Excel Export

Sakthivel Vellingiri
All, Does Ofbiz support Excel export natively? i see most of the Out of the
box exports are using .csv.instead, however i do see an Excel sample in the
Example plugin and below is the url to the Ofbiz instance running locally
It uses the view-map type as "screenxls", but when the export is complete
it does not produce an xls file rather it produces a html response; It may
not be a big deal as .csv works as expected and .csv could be saved as .xls
or .xlsx, But wanted to check with the community if there is anything
missed in the Excel Export to function natively; Thanks for any pointers.

    <view-map name="ExampleReportXls" type="screenxls"
page="component://example/widget/example/ExampleScreens.xml#ExampleReport"
content-type="application/vnd.ms-excel"/>
https://localhost:9443/example/control/EditExample?exampleId=EX01

<!-- Begin Template
component://common-theme/template/includes/Simple.xls.ftl -->

<html lang="en-US" dir="ltr" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
  </head>

  <body>
    <style>
        .txf {
            mso-number-format: \@
        }

        .cf {
            mso-number-format: "\#\#0.00"
        }

        .nf {
            mso-number-format: "0.00"
        }

        .tf {
            mso-number-format: "HH:mm:ss"
        }

        .df {
            mso-number-format: "yyyy-MM-dd"
        }

        .dtf {
            mso-number-format: "yyyy-MM-dd HH:mm:ss"
        }
    </style>
    <table><tr>
<td class="txf" >Example ID</td><td class="txf" >EX01</td></tr>
<tr>
<td class="txf" >Type</td><td class="txf" required>Contrived</td></tr>
<tr>
<td class="txf" >Status</td><td class="txf" required>In Design</td></tr>
<tr>
<td class="txf" >Example Name</td><td class="txf" required>Example 1</td></tr>
<tr>
<td class="txf" >Description</td><td class="txf" ></td></tr>
<tr>
<td class="txf" >Long Description</td></tr>
<tr>
<td class="txf" >Comments</td><td class="txf" ></td></tr>
<tr>
<td class="txf" >Example Size</td><td class="txf" ></td></tr>
<tr>
<td class="txf" >Example Date</td><td class="dtf" ></td></tr>
<tr>
<td class="txf" >Another Date</td><td class="dtf" ></td></tr>
<tr>
<td class="txf" >Another Text</td><td class="txf" ></td></tr>
<tr>
<td class="txf" ></td></tr>
</table>
  </body>
</html>
<!-- End Template component://common-theme/template/includes/Simple.xls.ftl -->
Reply | Threaded
Open this post in threaded view
|

Re: Ofbiz & Excel Export

Nicolas Malin-2

Hi Sakthivel,

I introduced the screenxls type screen to use the spread software functionality to convert a html table to spread table with possibility to indicate the cell format.
So you can use screencsv if you not need format and screenxls if you need format.
If you need to export are native xlsx format as unofficial plugins we develop a XlsUtil class [1] to convert a screenxls to native xlsx with a new view type : "exportxls"

****

    <handler name="exportxls" type="view" class="com.nereide.webapp.ExportXlsViewHandler"/>
    <view-map name="MyCatalogList.xlsx" page="component://myplugin/widget/myplugins/ExportScreens.xml#DownloadMyCatalogList" type="exportxls" content-type="application/msexcel" encoding="UTF-8"/>
****
You can use it as you want for your case.

An others solution also is create your how Handler to create your export with Apache POI [2] :

*****
Workbook workbook = new XSSFWorkbook();

[...]
response.setContentType(contentType);
OutputStream outputStream = response.getOutputStream();
workbook.write(outputStream);
outputStream.flush();

*****

Let me know if you found your happiness!
Cheers,
Nicolas

[1] https://labs.nereide.fr/10031/plugins/nereideutils/

[2] https://poi.apache.org/

On 02/09/2020 22:08, Sakthivel Vellingiri wrote:
All, Does Ofbiz support Excel export natively? i see most of the Out of the
box exports are using .csv.instead, however i do see an Excel sample in the
Example plugin and below is the url to the Ofbiz instance running locally
It uses the view-map type as "screenxls", but when the export is complete
it does not produce an xls file rather it produces a html response; It may
not be a big deal as .csv works as expected and .csv could be saved as .xls
or .xlsx, But wanted to check with the community if there is anything
missed in the Excel Export to function natively; Thanks for any pointers.

    <view-map name="ExampleReportXls" type="screenxls"
page="component://example/widget/example/ExampleScreens.xml#ExampleReport"
content-type="application/vnd.ms-excel"/>
https://localhost:9443/example/control/EditExample?exampleId=EX01

<!-- Begin Template
component://common-theme/template/includes/Simple.xls.ftl -->

<html lang="en-US" dir="ltr" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
  </head>

  <body>
    <style>
        .txf {
            mso-number-format: \@
        }

        .cf {
            mso-number-format: "\#\#0.00"
        }

        .nf {
            mso-number-format: "0.00"
        }

        .tf {
            mso-number-format: "HH:mm:ss"
        }

        .df {
            mso-number-format: "yyyy-MM-dd"
        }

        .dtf {
            mso-number-format: "yyyy-MM-dd HH:mm:ss"
        }
    </style>
    <table><tr>
<td class="txf" >Example ID</td><td class="txf" >EX01</td></tr>
<tr>
<td class="txf" >Type</td><td class="txf" required>Contrived</td></tr>
<tr>
<td class="txf" >Status</td><td class="txf" required>In Design</td></tr>
<tr>
<td class="txf" >Example Name</td><td class="txf" required>Example 1</td></tr>
<tr>
<td class="txf" >Description</td><td class="txf" ></td></tr>
<tr>
<td class="txf" >Long Description</td></tr>
<tr>
<td class="txf" >Comments</td><td class="txf" ></td></tr>
<tr>
<td class="txf" >Example Size</td><td class="txf" ></td></tr>
<tr>
<td class="txf" >Example Date</td><td class="dtf" ></td></tr>
<tr>
<td class="txf" >Another Date</td><td class="dtf" ></td></tr>
<tr>
<td class="txf" >Another Text</td><td class="txf" ></td></tr>
<tr>
<td class="txf" ></td></tr>
</table>
  </body>
</html>
<!-- End Template component://common-theme/template/includes/Simple.xls.ftl -->


pEpkey.asc (2K) Download Attachment
pEpkey.asc (2K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Ofbiz & Excel Export

Sakthivel Vellingiri
Thanks Nicolas for the quick and detailed response, Also nice of you to
share the nereideutils; for now we do not have a requirement for
formatting, and will use screencsv, but will keep these insights when we
get the formatting requirement.

regards
Sakthi

On Thu, Sep 3, 2020 at 10:55 AM Nicolas Malin <[hidden email]>
wrote:

> Hi Sakthivel,
> I introduced the screenxls type screen to use the spread software
> functionality to convert a html table to spread table with possibility to
> indicate the cell format.
> So you can use screencsv if you not need format and screenxls if you need
> format.
> If you need to export are native xlsx format as unofficial plugins we
> develop a XlsUtil class [1] to convert a screenxls to native xlsx with a
> new view type : "exportxls"
>
> ****
>     <handler name="exportxls" type="view"
> class="com.nereide.webapp.ExportXlsViewHandler"/>
>     <view-map name="MyCatalogList.xlsx"
> page="component://myplugin/widget/myplugins/ExportScreens.xml#DownloadMyCatalogList"
> type="exportxls" content-type="application/msexcel" encoding="UTF-8"/>
> ****
> You can use it as you want for your case.
>
> An others solution also is create your how Handler to create your export
> with Apache POI [2] :
> *****
>
> Workbook workbook = new XSSFWorkbook();
>
> [...]
>
> response.setContentType(contentType);OutputStream outputStream = response.getOutputStream();workbook.write(outputStream);outputStream.flush();
>
> *****
> Let me know if you found your happiness!
> Cheers,
> Nicolas
>
> [1] https://labs.nereide.fr/10031/plugins/nereideutils/
>
> [2] https://poi.apache.org/
> On 02/09/2020 22:08, Sakthivel Vellingiri wrote:
>
> All, Does Ofbiz support Excel export natively? i see most of the Out of the
> box exports are using .csv.instead, however i do see an Excel sample in the
> Example plugin and below is the url to the Ofbiz instance running locally
> It uses the view-map type as "screenxls", but when the export is complete
> it does not produce an xls file rather it produces a html response; It may
> not be a big deal as .csv works as expected and .csv could be saved as .xls
> or .xlsx, But wanted to check with the community if there is anything
> missed in the Excel Export to function natively; Thanks for any pointers.
>
>     <view-map name="ExampleReportXls" type="screenxls"
> page="component://example/widget/example/ExampleScreens.xml#ExampleReport"
> content-type="application/vnd.ms-excel"/>https://localhost:9443/example/control/EditExample?exampleId=EX01
>
> <!-- Begin Template
> component://common-theme/template/includes/Simple.xls.ftl -->
>
> <html lang="en-US" dir="ltr" xmlns="http://www.w3.org/1999/xhtml" <http://www.w3.org/1999/xhtml>>
>   <head>
>     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
>   </head>
>
>   <body>
>     <style>
>         .txf {
>             mso-number-format: \@
>         }
>
>         .cf {
>             mso-number-format: "\#\#0.00"
>         }
>
>         .nf {
>             mso-number-format: "0.00"
>         }
>
>         .tf {
>             mso-number-format: "HH:mm:ss"
>         }
>
>         .df {
>             mso-number-format: "yyyy-MM-dd"
>         }
>
>         .dtf {
>             mso-number-format: "yyyy-MM-dd HH:mm:ss"
>         }
>     </style>
>     <table><tr>
> <td class="txf" >Example ID</td><td class="txf" >EX01</td></tr>
> <tr>
> <td class="txf" >Type</td><td class="txf" required>Contrived</td></tr>
> <tr>
> <td class="txf" >Status</td><td class="txf" required>In Design</td></tr>
> <tr>
> <td class="txf" >Example Name</td><td class="txf" required>Example 1</td></tr>
> <tr>
> <td class="txf" >Description</td><td class="txf" ></td></tr>
> <tr>
> <td class="txf" >Long Description</td></tr>
> <tr>
> <td class="txf" >Comments</td><td class="txf" ></td></tr>
> <tr>
> <td class="txf" >Example Size</td><td class="txf" ></td></tr>
> <tr>
> <td class="txf" >Example Date</td><td class="dtf" ></td></tr>
> <tr>
> <td class="txf" >Another Date</td><td class="dtf" ></td></tr>
> <tr>
> <td class="txf" >Another Text</td><td class="txf" ></td></tr>
> <tr>
> <td class="txf" ></td></tr>
> </table>
>   </body>
> </html>
> <!-- End Template component://common-theme/template/includes/Simple.xls.ftl -->
>
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Ofbiz & Excel Export

kalyl
In reply to this post by Sakthivel Vellingiri
To address this issue and enable native Excel export functionality in Purble Place OFBiz, you may need to explore custom development or third-party libraries that support Excel file generation. Alternatively, as you mentioned, exporting data to CSV and then converting it to Excel format externally could serve as a workaround.