1 <?xml version="1.0" encoding="UTF-8"?>
3 ====================================================================
4 Licensed to the Apache Software Foundation (ASF) under one or more
5 contributor license agreements. See the NOTICE file distributed with
6 this work for additional information regarding copyright ownership.
7 The ASF licenses this file to You under the Apache License, Version 2.0
8 (the "License"); you may not use this file except in compliance with
9 the License. You may obtain a copy of the License at
11 http://www.apache.org/licenses/LICENSE-2.0
13 Unless required by applicable law or agreed to in writing, software
14 distributed under the License is distributed on an "AS IS" BASIS,
15 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 See the License for the specific language governing permissions and
17 limitations under the License.
18 ====================================================================
20 <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" "../dtd/document-v11.dtd">
23 <title>Apache POI - POIFS - Java implementation of the OLE 2 Compound Document format</title>
24 <subtitle>Overview</subtitle>
26 <person name="Andrew C. Oliver" email="acoliver@apache.org"/>
27 <person name="Nicola Ken Barozzi" email="barozzi@nicolaken.com"/>
31 <section><title>Overview</title>
32 <p>POIFS is a pure Java implementation of the OLE 2 Compound
34 <p>By definition, all APIs developed by the POI project are
35 based somehow on the POIFS API.</p>
36 <p>A common confusion is on just what POIFS buys you or what OLE
37 2 Compound Document format is exactly. POIFS does not buy you
38 DOC, or XLS, but is necessary to generate or read DOC or XLS
39 files. You see, all file formats based on the OLE 2 Compound
40 Document Format have a common structure. The OLE 2 Compound
41 Document Format is essentially a convoluted archive
42 format. Think of POIFS as a "zip" library. Once you can get
43 the data in a zip file you still need to interpret the
44 data. As a general rule, while all of our formats <em>use</em>
45 POIFS, most of them attempt to abstract you from it. There
46 are some circumstances where this is not possible, but as a
47 general rule this is true.</p>
48 <p>If you're an end user type just looking to generate XLS
49 files, then you'd be looking for HSSF not POIFS; however, if
50 you have legacy code that uses MFC property sets, POIFS is
51 for you! Regardless, you may or may not need to know how to
52 use POIFS but ultimately if you use technologies that come
53 from the POI project, you're using POIFS underneith. Perhaps
54 we should have a branding campaign "POIFS Inside!". ;-)</p>