| Search Apache POI |

# Apache POI - POIFS - Java implementation of the OLE 2 Compound Document format

### Overview

POIFS is a pure Java implementation of the OLE 2 Compound Document format.

By definition, all APIs developed by the POI project are based somehow on the POIFS API.

A common confusion is on just what POIFS buys you or what OLE 2 Compound Document format is exactly. POIFS does not buy you DOC, or XLS, but is necessary to generate or read DOC or XLS files. You see, all file formats based on the OLE 2 Compound Document Format have a common structure. The OLE 2 Compound Document Format is essentially a convoluted archive format. Think of POIFS as a "zip" library. Once you can get the data in a zip file you still need to interpret the data. As a general rule, while all of our formats use POIFS, most of them attempt to abstract you from it. There are some circumstances where this is not possible, but as a general rule this is true.

If you're an end user type just looking to generate XLS files, then you'd be looking for HSSF not POIFS; however, if you have legacy code that uses MFC property sets, POIFS is for you! Regardless, you may or may not need to know how to use POIFS but ultimately if you use technologies that come from the POI project, you're using POIFS underneith. Perhaps we should have a branding campaign "POIFS Inside!". ;-)

by Andrew C. Oliver, Nicola Ken Barozzi