\u001B[1mSYNOPSIS\u001B[0m
    ${project.description}

    Original Maven URLs:
        \u001B[33mmvn:${pkgGroupId}/poi/${pkgVersion}\u001B[0m
        \u001B[33mmvn:${pkgGroupId}/poi-contrib/${pkgVersion}\u001B[0m
        \u001B[33mmvn:${pkgGroupId}/poi-scratchpad/${pkgVersion}\u001B[0m

\u001B[1mDESCRIPTION\u001B[0m
    The Apache POI Project's mission is to create and maintain Java APIs for manipulating various file formats based
    upon the Office Open XML standards (OOXML) and Microsoft's OLE 2 Compound Document format (OLE2). In short, you can
    read and write MS Excel files using Java. In addition, you can read and write MS Word and MS PowerPoint files using
    Java. Apache POI is your Java Excel solution (for Excel 97-2008). We have a complete API for porting other OOXML and
    OLE2 formats and welcome others to participate.

    OLE2 files include most Microsoft Office files such as XLS, DOC, and PPT as well as MFC serialization API based file
    formats. The project provides APIs for the OLE2 Filesystem (POIFS) and OLE2 Document Properties (HPSF).

    Office OpenXML Format is the new standards based XML file format found in Microsoft Office 2007 and 2008. This
    includes XLSX, DOCX and PPTX. The project provides a low level API to support the Open Packaging Conventions using
    openxml4j.

    For each MS Office application there exists a component module that attempts to provide a common high level Java api
    to both OLE2 and OOXML document formats. This is most developed for Excel workbooks (SS=HSSF+XSSF). Work is
    progressing for Word documents (HWPF+XWPF) and PowerPoint presentations (HSLF+XSLF).

    The project has recently added support for Outlook (HSMF). Microsoft opened the specifications to this format in
    October 2007. We would welcome contributions.

    There are also projects for Visio (HDGF), TNEF (HMEF), and Publisher (HPBF).

    As a general policy we collaborate as much as possible with other projects to provide this functionality.
    Examples include: Cocoon for which there are serializers for HSSF; Open Office.org with whom we collaborate in
    documenting the XLS format; and Tika / Lucene, for which we provide format interpretors.
    When practical, we donate components directly to those projects for POI-enabling them.

\u001B[1mSEE ALSO\u001B[0m
    \u001B[36mhttp://poi.apache.org/\u001B[0m
