publish latest docs

This commit is contained in:
PJ Fanning 2025-07-08 03:15:49 +01:00
parent f47ea222b3
commit 2aeba4326d
26 changed files with 191 additions and 416 deletions

View File

@ -284,7 +284,7 @@ document.write("Last Published: " + document.lastModified);
5.4.1 (2025-04-06)
</h2>
<div class="section">
<a name="Summary"></a>
<a name="Summary-N1009C"></a>
<h3 class="boxed">Summary</h3>
<ul>
@ -299,7 +299,7 @@ document.write("Last Published: " + document.lastModified);
<li>Upgrade graphics2d dependency to 3.0.3</li>
</ul>
<a name="Changes"></a>
<a name="Changes-N100B2"></a>
<h3 class="boxed">Changes</h3>
<table class="POITable">
<colgroup>
@ -320,7 +320,7 @@ document.write("Last Published: " + document.lastModified);
</tr>
<tr class="action">
<td><img class="icon" alt="add" src="images/add.png"></td><td><a href="https://github.com/apache/poi/pull/775">github-775</a></td><td>OOXML</td><td>Allow some OPC compliance checks to be tuned. Thanks to Ken Reese</td>
<td><img class="icon" alt="add" src="images/add.png"></td><td><a href="https://github.com/apache/poi/pull/775">github-775</a></td><td>OOXML</td><td>Allow some OPC compliance checks to be tuned</td>
</tr>
<tr class="action">
@ -366,6 +366,14 @@ document.write("Last Published: " + document.lastModified);
<tr class="action">
<td><img class="icon" alt="fix" src="images/fix.png"></td><td><a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=69583">69583</a></td><td>SS_Common</td><td>Cell copy support does not handle Time only values properly</td>
</tr>
<tr class="action">
<td><img class="icon" alt="fix" src="images/fix.png"></td><td><a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=69681">69681</a></td><td>SS_Common</td><td>Issue with date/time formats that leave a space before the AM/PM part</td>
</tr>
<tr class="action">
<td><img class="icon" alt="add" src="images/add.png"></td><td><a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=69714">69714</a></td><td>POI_Overall</td><td>Allow custom TempFileCreationStrategy per thread</td>
</tr>
</tbody>
</table>
@ -377,7 +385,7 @@ document.write("Last Published: " + document.lastModified);
5.4.0 (2025-01-08)
</h2>
<div class="section">
<a name="Summary-N10126"></a>
<a name="Summary-N101C3"></a>
<h3 class="boxed">Summary</h3>
<ul>
@ -406,7 +414,7 @@ document.write("Last Published: " + document.lastModified);
<li>Upgrade JaCoCo code-coverage tooling to 0.8.12</li>
</ul>
<a name="Changes-N10151"></a>
<a name="Changes-N101EE"></a>
<h3 class="boxed">Changes</h3>
<table class="POITable">
<colgroup>
@ -488,7 +496,7 @@ document.write("Last Published: " + document.lastModified);
5.3.0 (2024-07-02)
</h2>
<div class="section">
<a name="Summary-N10252"></a>
<a name="Summary-N102EF"></a>
<h3 class="boxed">Summary</h3>
<ul>
@ -509,7 +517,7 @@ document.write("Last Published: " + document.lastModified);
<li>Upgrade xmlbeans dependency to 5.2.1</li>
</ul>
<a name="Changes-N10271"></a>
<a name="Changes-N1030E"></a>
<h3 class="boxed">Changes</h3>
<table class="POITable">
<colgroup>
@ -579,7 +587,7 @@ document.write("Last Published: " + document.lastModified);
5.2.5 (2023-11-25)
</h2>
<div class="section">
<a name="Summary-N10342"></a>
<a name="Summary-N103DF"></a>
<h3 class="boxed">Summary</h3>
<ul>
@ -596,7 +604,7 @@ document.write("Last Published: " + document.lastModified);
<li>Upgrade xmlbeans dependency to 5.2.0</li>
</ul>
<a name="Changes-N1035B"></a>
<a name="Changes-N103F8"></a>
<h3 class="boxed">Changes</h3>
<table class="POITable">
<colgroup>
@ -650,7 +658,7 @@ document.write("Last Published: " + document.lastModified);
5.2.4 (2023-09-28)
</h2>
<div class="section">
<a name="Summary-N103EC"></a>
<a name="Summary-N10489"></a>
<h3 class="boxed">Summary</h3>
<ul>
@ -677,7 +685,7 @@ document.write("Last Published: " + document.lastModified);
<li>Use jdk18on versions of bouncycastle jars (v1.76)</li>
</ul>
<a name="Changes-N10414"></a>
<a name="Changes-N104B1"></a>
<h3 class="boxed">Changes</h3>
<table class="POITable">
<colgroup>
@ -823,7 +831,7 @@ document.write("Last Published: " + document.lastModified);
5.2.3 (2022-09-16)
</h2>
<div class="section">
<a name="Summary-N10615"></a>
<a name="Summary-N106B2"></a>
<h3 class="boxed">Summary</h3>
<ul>
@ -842,7 +850,7 @@ document.write("Last Published: " + document.lastModified);
<li>Avoid some more possible overly large memory allocations on certain input documents</li>
</ul>
<a name="Changes-N10631"></a>
<a name="Changes-N106CE"></a>
<h3 class="boxed">Changes</h3>
<table class="POITable">
<colgroup>
@ -1044,14 +1052,14 @@ document.write("Last Published: " + document.lastModified);
5.2.2 (2022-03-19)
</h2>
<div class="section">
<a name="Summary-N10912"></a>
<a name="Summary-N109AF"></a>
<h3 class="boxed">Summary</h3>
<ul>
<li>Upgrade log4j-api dependency to 2.17.2 and graphics2d dependency to 0.35 as well as some test dependencies</li>
</ul>
<a name="Changes-N1091C"></a>
<a name="Changes-N109B9"></a>
<h3 class="boxed">Changes</h3>
<table class="POITable">
<colgroup>
@ -1105,14 +1113,14 @@ document.write("Last Published: " + document.lastModified);
5.2.1 (2022-03-03)
</h2>
<div class="section">
<a name="Summary-N109AD"></a>
<a name="Summary-N10A4A"></a>
<h3 class="boxed">Summary</h3>
<ul>
<li>Upgrade curvesapi dependency to 1.07</li>
</ul>
<a name="Changes-N109B7"></a>
<a name="Changes-N10A54"></a>
<h3 class="boxed">Changes</h3>
<table class="POITable">
<colgroup>
@ -1186,7 +1194,7 @@ document.write("Last Published: " + document.lastModified);
5.2.0 (2022-01-14)
</h2>
<div class="section">
<a name="Summary-N10A98"></a>
<a name="Summary-N10B35"></a>
<h3 class="boxed">Summary</h3>
<ul>
@ -1199,7 +1207,7 @@ document.write("Last Published: " + document.lastModified);
<li>Upgrade PDFBox Graphics2d dependency to 0.34 and PDFBox dependency to 2.0.25</li>
</ul>
<a name="Changes-N10AAB"></a>
<a name="Changes-N10B48"></a>
<h3 class="boxed">Changes</h3>
<table class="POITable">
<colgroup>
@ -1293,7 +1301,7 @@ document.write("Last Published: " + document.lastModified);
5.1.0 (2021-11-01)
</h2>
<div class="section">
<a name="Summary-N10BDC"></a>
<a name="Summary-N10C79"></a>
<h3 class="boxed">Summary</h3>
<ul>
@ -1320,7 +1328,7 @@ document.write("Last Published: " + document.lastModified);
<li>By default, no DTDs will be accepted in XML files. This can be relaxed by setting POIXMLTypeLoader.DEFAULT_XML_OPTIONS.setDisallowDocTypeDeclaration(false).</li>
</ul>
<a name="Changes-N10C04"></a>
<a name="Changes-N10CA1"></a>
<h3 class="boxed">Changes</h3>
<table class="POITable">
<colgroup>
@ -1522,7 +1530,7 @@ document.write("Last Published: " + document.lastModified);
5.0.0 (2021-01-20)
</h2>
<div class="section">
<a name="Summary-N10EE5"></a>
<a name="Summary-N10F82"></a>
<h3 class="boxed">Summary</h3>
<ul>
@ -1549,7 +1557,7 @@ document.write("Last Published: " + document.lastModified);
<li>new experimental DeferredSXSSFWorkbook which creates fewer temp files by lazily generating rows (see DeferredGeneration in poi-examples)</li>
</ul>
<a name="Changes-N10F0A"></a>
<a name="Changes-N10FA7"></a>
<h3 class="boxed">Changes</h3>
<table class="POITable">
<colgroup>
@ -1859,7 +1867,7 @@ document.write("Last Published: " + document.lastModified);
4.1.2 (2020-02-17)
</h2>
<div class="section">
<a name="Summary-N11392"></a>
<a name="Summary-N1142F"></a>
<h3 class="boxed">Summary</h3>
<ul>
@ -1874,7 +1882,7 @@ document.write("Last Published: " + document.lastModified);
<li>updated dependencies to Bouncycastle 1.64</li>
</ul>
<a name="Changes-N113A8"></a>
<a name="Changes-N11445"></a>
<h3 class="boxed">Changes</h3>
<table class="POITable">
<colgroup>
@ -2008,7 +2016,7 @@ document.write("Last Published: " + document.lastModified);
4.1.1 (2019-10-20)
</h2>
<div class="section">
<a name="Summary-N11573"></a>
<a name="Summary-N11610"></a>
<h3 class="boxed">Summary</h3>
<ul>
@ -2027,7 +2035,7 @@ document.write("Last Published: " + document.lastModified);
<li>CVE-2019-12415 - XML External Entity (XXE) Processing in Apache POI</li>
</ul>
<a name="Changes-N1158F"></a>
<a name="Changes-N1162C"></a>
<h3 class="boxed">Changes</h3>
<table class="POITable">
<colgroup>
@ -2177,7 +2185,7 @@ document.write("Last Published: " + document.lastModified);
4.1.0 (2019-04-09)
</h2>
<div class="section">
<a name="Summary-N11797"></a>
<a name="Summary-N11834"></a>
<h3 class="boxed">Summary</h3>
<ul>
@ -2202,7 +2210,7 @@ document.write("Last Published: " + document.lastModified);
<li>Upgrade to XMLSec 2.1.2</li>
</ul>
<a name="Changes-N117BC"></a>
<a name="Changes-N11859"></a>
<h3 class="boxed">Changes</h3>
<table class="POITable">
<colgroup>
@ -2376,7 +2384,7 @@ document.write("Last Published: " + document.lastModified);
4.0.1 (2018-12-03)
</h2>
<div class="section">
<a name="Summary-N11A2D"></a>
<a name="Summary-N11ACA"></a>
<h3 class="boxed">Summary</h3>
<ul>
@ -2387,7 +2395,7 @@ document.write("Last Published: " + document.lastModified);
<li>Upgrade to XMLBeans 3.0.2</li>
</ul>
<a name="Changes-N11A3D"></a>
<a name="Changes-N11ADA"></a>
<h3 class="boxed">Changes</h3>
<table class="POITable">
<colgroup>
@ -2545,7 +2553,7 @@ document.write("Last Published: " + document.lastModified);
4.0.0 (2018-09-07)
</h2>
<div class="section">
<a name="Summary-N11C6E"></a>
<a name="Summary-N11D0B"></a>
<h3 class="boxed">Summary</h3>
<ul>
@ -2554,7 +2562,7 @@ document.write("Last Published: " + document.lastModified);
<li>New OOXML schema (1.4) necessary, because of incompatible XMLBeans loading not anymore through POIXMLTypeLoader</li>
</ul>
<a name="Changes-N11C7B"></a>
<a name="Changes-N11D18"></a>
<h3 class="boxed">Changes</h3>
<table class="POITable">
<colgroup>

View File

@ -302,7 +302,7 @@ document.write("Last Published: " + document.lastModified);
pure Java implementation of the Visio XML (VSDX) file format.</p>
<p>Currently, HDGF provides a low-level, read-only api for
accessing Visio documents. It also provides a
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hdgf/extractor/">way</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-scratchpad/src/main/java/org/apache/poi/hdgf/extractor/">way</a>
to extract the textual content from a file.
</p>
<p>At this time, there is no <em>usermodel</em> api or similar,
@ -314,7 +314,7 @@ document.write("Last Published: " + document.lastModified);
to get a feel for how Visio files are structured.</p>
<p>To get a feel for the contents of a file, and to track down
where data of interest is stored, HDGF comes with
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hdgf/dev/">VSDDumper</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-scratchpad/src/main/java/org/apache/poi/hdgf/dev/">VSDDumper</a>
to print out the contents of the file. Users should also make
use of
<a href="https://web.archive.org/web/20071212220759/https://www.gnome.ru/projects/vsdump_en.html">vsdump</a>
@ -323,8 +323,8 @@ document.write("Last Published: " + document.lastModified);
<div class="label">Note</div>
<div class="content">
This code currently lives the
<a href="https://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/">scratchpad area</a>
of the POI SVN repository. To use this component, ensure
<a href="https://github.com/apache/poi/tree/trunk/poi-scratchpad/">scratchpad area</a>
of the POI Git repository. To use this component, ensure
you have the Scratchpad Jar on your classpath, or a dependency
defined on the <em>poi-scratchpad</em> artifact - the main POI
jar is not enough! See the

View File

@ -354,15 +354,15 @@ document.write("Last Published: " + document.lastModified);
<p>
Currently, there are only a handful of example programs using HWPF and XWPF
available. They can be found in svn in the examples section, under
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hwpf">HWPF</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/hwpf">HWPF</a>
and
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xwpf">XWPF</a>.
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xwpf">XWPF</a>.
Both HWPF and XWPF have fairly high levels of unit test coverage, which
provides examples of using the various areas of functionality of both
modules. These can be found in svn, under
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hwpf">HWPF</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-scratchpad/src/test/java/org/apache/poi/hwpf">HWPF</a>
and
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf">XWPF</a>.
<a href="https://github.com/apache/poi/tree/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf">XWPF</a>.
Contributions of more examples, whether inspired by the unit tests or
not, would be most welcomed!
</p>

View File

@ -356,9 +356,9 @@ document.</p>
<h2 class="boxed">Further Examples</h2>
<div class="section">
<p>For now, there are a limited number of XWPF examples in the
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xwpf">Examples Package</a>.
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xwpf">Examples Package</a>.
Beyond those, the best source of additional examples is in the unit
tests. <a href="https://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/">
tests. <a href="https://github.com/apache/poi/tree/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/">
Browse the XWPF unit tests.</a>
</p>

View File

@ -291,7 +291,7 @@ document.write("Last Published: " + document.lastModified);
<h3>Overview</h3>
<div id="front-matter"></div>
<p>HWPF is still in early development. It is in the <a href="https://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/">
<p>HWPF is still in early development. It is in the <a href="https://github.com/apache/poi/tree/trunk/poi-scratchpad/">
scratchpad section of the SVN.</a> You will need to ensure you
either have a recent SVN checkout, or a recent SVN nightly build
(including the scratchpad jar!)</p>
@ -355,7 +355,7 @@ do end up with macros in them.</p>
<h2 class="boxed">Further Examples</h2>
<div class="section">
<p>For now, the best source of additional examples is in the unit
tests. <a href="https://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hwpf/">
tests. <a href="https://github.com/apache/poi/tree/trunk/poi-scratchpad/src/test/java/org/apache/poi/hwpf/">
Browse the HWPF unit tests.</a>
</p>

View File

@ -317,8 +317,8 @@ document.write("Last Published: " + document.lastModified);
<div class="label">Note</div>
<div class="content">
This code currently lives the
<a href="https://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/">scratchpad area</a>
of the POI SVN repository. To use this component, ensure
<a href="https://github.com/apache/poi/tree/trunk/poi-scratchpad/">scratchpad area</a>
of the POI Git repository. To use this component, ensure
you have the Scratchpad Jar on your classpath, or a dependency
defined on the <em>poi-scratchpad</em> artifact - the main POI
jar is not enough! See the
@ -553,7 +553,7 @@ document.write("Last Published: " + document.lastModified);
<div class="section">
<p>To get a feel for the contents of a file, and to track down
where data of interest is stored, HMEF comes with
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hmef/dev/">HMEFDumper</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-scratchpad/src/main/java/org/apache/poi/hmef/dev/">HMEFDumper</a>
to print out the contents of the file.</p>
</div>

View File

@ -646,7 +646,7 @@ document.write("Last Published: " + document.lastModified);
<p>Type 8 has 7 2 byte unsigned ints, then a pair of 4 byte
unsigned ints for each entry.</p>
<p>Type 12 holds hyperlinks, and is very much more complex.
See <a href="https://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hpbf/model/qcbits/QCPLCBit.java?view=markup"><span class="codefrag">org.apache.poi.hpbf.model.qcbits.QCPLCBit</span></a>
See <a href="https://github.com/apache/poi/tree/trunk/poi-scratchpad/src/main/java/org/apache/poi/hpbf/model/qcbits/QCPLCBit.java?view=markup"><span class="codefrag">org.apache.poi.hpbf.model.qcbits.QCPLCBit</span></a>
for our best guess as to how the contents match up.</p>
</div>

View File

@ -330,8 +330,8 @@ document.write("Last Published: " + document.lastModified);
<div class="label">Note</div>
<div class="content">
This code currently lives the
<a href="https://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/">scratchpad area</a>
of the POI SVN repository. To use this component, ensure
<a href="https://github.com/apache/poi/tree/trunk/poi-scratchpad/">scratchpad area</a>
of the POI Git repository. To use this component, ensure
you have the Scratchpad Jar on your classpath, or a dependency
defined on the <em>poi-scratchpad</em> artifact - the main POI
jar is not enough! See the

View File

@ -304,14 +304,14 @@ document.write("Last Published: " + document.lastModified);
<p>There is an example MSG textual renderer, which shows how to access the
common parts such as sender, subject, message body and examples. This is
in the
<a href="https://svn.apache.org/viewvc/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hsmf/">HSMF examples area</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/hsmf/">HSMF examples area</a>
of SVN. You may also wish to look at the unit tests for more use guides.</p>
<div class="note">
<div class="label">Note</div>
<div class="content">
This code currently lives the
<a href="https://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/main/java">scratchpad area</a>
of the POI SVN repository. To use this component, ensure
<a href="https://github.com/apache/poi/tree/trunk/poi-scratchpad/src/main/java">scratchpad area</a>
of the POI Git repository. To use this component, ensure
you have the Scratchpad Jar on your classpath, or a dependency
defined on the <em>poi-scratchpad</em> artifact - the main POI
jar is not enough! See the

View File

@ -618,7 +618,7 @@ document.write("Last Published: " + document.lastModified);
<a href="https://search.maven.org/#artifactdetails|commons-codec|commons-codec|1.17.1|jar">commons-codec</a>,
<a href="https://search.maven.org/#artifactdetails|org.apache.commons|commons-collections4|4.4|jar">commons-collections</a>,
<a href="https://search.maven.org/#artifactdetails|org.apache.commons|commons-math3|3.6.1|jar">commons-math3</a>
<a href="https://search.maven.org/#artifactdetails|commons-io|commons-io|2.18.0|jar">commons-io</a>
<a href="https://search.maven.org/#artifactdetails|commons-io|commons-io|2.19.0|jar">commons-io</a>
</td>
<td colspan="1" rowspan="1">poi-version-yyyymmdd.jar</td>
@ -679,9 +679,9 @@ document.write("Last Published: " + document.lastModified);
<td colspan="1" rowspan="1"><a href="https://search.maven.org/#artifactdetails|org.apache.xmlbeans|xmlbeans|5.3.0|jar">xmlbeans</a>
<br>
For signing:
<a href="https://search.maven.org/#artifactdetails|org.bouncycastle|bcpkix-jdk18on|1.80|jar">bcpkix-jdk18on</a>,
<a href="https://search.maven.org/#artifactdetails|org.bouncycastle|bcutil-jdk18on|1.80|jar">bcprov-jdk18on</a>,
<a href="https://search.maven.org/#artifactdetails|org.apache.santuario|xmlsec|3.0.5|bundle">xmlsec</a>,
<a href="https://search.maven.org/#artifactdetails|org.bouncycastle|bcpkix-jdk18on|1.81|jar">bcpkix-jdk18on</a>,
<a href="https://search.maven.org/#artifactdetails|org.bouncycastle|bcutil-jdk18on|1.81|jar">bcprov-jdk18on</a>,
<a href="https://search.maven.org/#artifactdetails|org.apache.santuario|xmlsec|3.0.6|bundle">xmlsec</a>,
<a href="https://search.maven.org/#artifactdetails|org.slf4j|slf4j-api|2.0.17|jar">slf4j-api</a>
</td>
<td colspan="1" rowspan="1">poi-ooxml-full-version-yyyymmdd.jar</td>
@ -733,8 +733,8 @@ document.write("Last Published: " + document.lastModified);
<div class="section">
<p>
Small sample programs using the POI API are available in the
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples">src/examples</a>
(<a href="https://svn.apache.org/viewvc/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples">viewvc</a>) directory of the source distribution.
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples">src/examples</a>
(<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples">viewvc</a>) directory of the source distribution.
</p>
<p>
All of the examples are included in POI distributions as a poi-examples artifact.
@ -762,7 +762,7 @@ document.write("Last Published: " + document.lastModified);
</p>
<p>
See <a href="poi-ruby.html">POI Ruby Bindings</a> and other code in the
<a href="https://svn.apache.org/repos/asf/poi/trunk/src/contrib/">poi-contrib module</a>
<a href="https://github.com/apache/poi/tree/trunk/src/contrib/">poi-contrib module</a>
</p>
</div>

View File

@ -451,8 +451,8 @@ document.write("Last Published: " + document.lastModified);
<a name="Subversion"></a>
<h3 class="boxed">Subversion</h3>
<p>
The POI-Ruby module sits under the POI <a href="https://svn.apache.org/repos/asf/poi/trunk/src/contrib/poi-ruby/">Subversion</a>
<a href="https://svn.apache.org/viewvc/poi/trunk/src/contrib/poi-ruby/">(viewvc)</a>. Running <em>make</em>
The POI-Ruby module sits under the POI <a href="https://github.com/apache/poi/tree/trunk/src/contrib/poi-ruby/">Subversion</a>
<a href="https://github.com/apache/poi/tree/trunk/src/contrib/poi-ruby/">(viewvc)</a>. Running <em>make</em>
inside that directory will create a loadable ruby extension <em>poi4r.so</em> in the release subdirectory. Tests
are in the <em>tests/</em> subdirectory, and should be run from the <em>poi-ruby</em> directory. Please read the tests to figure out the usage.
</p>

View File

@ -1220,7 +1220,7 @@ document.write("Last Published: " + document.lastModified);
</div>
</div>
<p>For an example of an in-place change to one stream within a file, you can see the example
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hpsf/ModifyDocumentSummaryInformation.java">
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/hpsf/ModifyDocumentSummaryInformation.java">
org/apache/poi/hpsf/examples/ModifyDocumentSummaryInformation.java
</a>

View File

@ -311,8 +311,8 @@ document.write("Last Published: " + document.lastModified);
<div class="label">Note</div>
<div class="content">
This code currently lives the
<a href="https://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/">scratchpad area</a>
of the POI SVN repository. To use this component, ensure
<a href="https://github.com/apache/poi/tree/trunk/poi-scratchpad/">scratchpad area</a>
of the POI Git repository. To use this component, ensure
you have the Scratchpad Jar on your classpath, or a dependency
defined on the <em>poi-scratchpad</em> artifact - the main POI
jar is not enough! See the

View File

@ -303,7 +303,7 @@ document.write("Last Published: " + document.lastModified);
<div class="section">
<p>
For rendering slideshow (HSLF/XSLF), WMF, EMF and EMF+ pictures, POI provides an utility class
<a href="https://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xslf/util/PPTX2PNG.java?view=markup">
<a href="https://github.com/apache/poi/tree/trunk/poi-ooxml/src/main/java/org/apache/poi/xslf/util/PPTX2PNG.java?view=markup">
PPTX2PNG</a>:
</p>
<div class="code">

View File

@ -295,8 +295,8 @@ document.write("Last Published: " + document.lastModified);
<div class="section">
<p>
This page offers a short introduction into the XSLF API. More examples can be found in the
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xslf/">XSLF Examples</a>
in the POI SVN repository.
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xslf/">XSLF Examples</a>
in the POI Git repository.
</p>
<div class="note">
<div class="label">Note</div>

View File

@ -316,7 +316,7 @@ document.write("Last Published: " + document.lastModified);
<span class="lineno"></span><span class="codebody"></span>
</div>
</div>
<p>All sample source is available in <a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/">SVN</a>
<p>All sample source is available in <a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/">SVN</a>
</p>
<p>In addition, there are a handful of
<a href="#hssf-only">HSSF only</a> and
@ -399,7 +399,7 @@ document.write("Last Published: " + document.lastModified);
</ul>
<a name="ss-common" id="ss-common"></a><a name="business-plan" id="business-plan"></a><a name="Business+Plan"></a>
<h3 class="boxed">Business Plan</h3>
<p> The <a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/BusinessPlan.java">BusinessPlan</a>
<p> The <a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/BusinessPlan.java">BusinessPlan</a>
application creates a sample business plan with three phases, weekly iterations and time highlighting. Demonstrates advanced cell formatting
(number and date formats, alignments, fills, borders) and various settings for organizing data in a sheet (freezed panes, grouped rows).
</p>
@ -407,28 +407,28 @@ document.write("Last Published: " + document.lastModified);
<img class="figure" alt="business plan demo" src="images/businessplan.jpg"></div>
<a name="calendar" id="calendar"></a><a name="Calendar"></a>
<h3 class="boxed">Calendar</h3>
<p> The <a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/CalendarDemo.java">Calendar</a>
<p> The <a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/CalendarDemo.java">Calendar</a>
demo creates a multi sheet calendar. Each month is on a separate sheet.
</p>
<div style="text-align: center;">
<img class="figure" alt="calendar demo" src="images/calendar.jpg"></div>
<a name="loan-calculator" id="loan-calculator"></a><a name="Loan+Calculator"></a>
<h3 class="boxed">Loan Calculator</h3>
<p> The <a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/LoanCalculator.java">LoanCalculator</a>
<p> The <a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/LoanCalculator.java">LoanCalculator</a>
demo creates a simple loan calculator. Demonstrates advance usage of cell formulas and named ranges.
</p>
<div style="text-align: center;">
<img class="figure" alt="loan calculator demo" src="images/loancalc.jpg"></div>
<a name="timesheet" id="timesheet"></a><a name="Timesheet"></a>
<h3 class="boxed">Timesheet</h3>
<p> The <a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/TimesheetDemo.java">Timesheet</a>
<p> The <a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/TimesheetDemo.java">Timesheet</a>
demo creates a weekly timesheet with automatic calculation of total hours. Demonstrates advance usage of cell formulas.
</p>
<div style="text-align: center;">
<img class="figure" alt="timesheet demo" src="images/timesheet.jpg"></div>
<a name="conditional-formats" id="conditional-formats"></a><a name="Conditional+Formats"></a>
<h3 class="boxed">Conditional Formats</h3>
<p> The <a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/ConditionalFormats.java">ConditionalFormats</a>
<p> The <a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/ConditionalFormats.java">ConditionalFormats</a>
demo is a collection of short examples showing what you can do with Excel conditional formatting in POI:
</p>
<ul>
@ -454,52 +454,52 @@ document.write("Last Published: " + document.lastModified);
</ul>
<a name="common-formulas" id="common-formulas"></a><a name="Formula+Examples"></a>
<h3 class="boxed">Formula Examples</h3>
<p>The <a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/formula/CalculateMortgage.java">CalculateMortgage</a>
<p>The <a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/formula/CalculateMortgage.java">CalculateMortgage</a>
example demonstrates a simple user-defined function to calculate
principal and interest.</p>
<p>The <a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/formula/CheckFunctionsSupported.java">CheckFunctionsSupported</a>
<p>The <a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/formula/CheckFunctionsSupported.java">CheckFunctionsSupported</a>
example shows how to test what functions and formulas aren't
supported from a given file.</p>
<p>The <a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/formula/SettingExternalFunction.java">SettingExternalFunction</a>
<p>The <a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/formula/SettingExternalFunction.java">SettingExternalFunction</a>
example demonstrates how to use externally provided (third-party)
formula add-ins.</p>
<p>The <a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/formula/UserDefinedFunctionExample.java">UserDefinedFunctionExample</a>
<p>The <a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/formula/UserDefinedFunctionExample.java">UserDefinedFunctionExample</a>
example demonstrates how to invoke a User Defined Function for a
given Workbook instance using POI's UDFFinder implementation.</p>
<a name="add-dimensioned-image" id="add-dimensioned-image"></a><a name="Add+Dimensioned+Image"></a>
<h3 class="boxed">Add Dimensioned Image</h3>
<p>The <a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/AddDimensionedImage.java">AddDimensionedImage</a>
<p>The <a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/AddDimensionedImage.java">AddDimensionedImage</a>
example demonstrates how to add an image to a worksheet and set that
images size to a specific number of millimetres irrespective of the
width of the columns or height of the rows.</p>
<a name="aligned-cells" id="aligned-cells"></a><a name="Aligned+Cells"></a>
<h3 class="boxed">Aligned Cells</h3>
<p>The <a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/AligningCells.java">AligningCells</a>
<p>The <a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/AligningCells.java">AligningCells</a>
example demonstrates how various alignment options work.</p>
<a name="cell-style-details" id="cell-style-details"></a><a name="Cell+Style+Details"></a>
<h3 class="boxed">Cell Style Details</h3>
<p>The <a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/CellStyleDetails.java">CellStyleDetails</a>
<p>The <a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/CellStyleDetails.java">CellStyleDetails</a>
example demonstrates how to read excel styles for cells.</p>
<a name="linked-dropdown" id="linked-dropdown"></a><a name="Linked+Dropdown+Lists"></a>
<h3 class="boxed">Linked Dropdown Lists</h3>
<p>The <a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/LinkedDropDownLists.java">LinkedDropDownLists</a>
<p>The <a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/LinkedDropDownLists.java">LinkedDropDownLists</a>
example demonstrates one technique that may be used to create linked
or dependent drop down lists.</p>
<a name="performance-test" id="performance-test"></a><a name="Common+SS+Performance+Test"></a>
<h3 class="boxed">Common SS Performance Test</h3>
<p>The <a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/SSPerformanceTest.java">SSPerformanceTest</a>
<p>The <a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/SSPerformanceTest.java">SSPerformanceTest</a>
example provides a way to create simple example files of varying
sizes, and to calculate how long they take. Useful for benchmarking
your system, and to also test if slow performance is due to Apache
POI itself or to your own code.</p>
<a name="to-html" id="to-html"></a><a name="ToHtml"></a>
<h3 class="boxed">ToHtml</h3>
<p> The <a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/html/ToHtml.java">ToHtml</a>
<p> The <a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/html/ToHtml.java">ToHtml</a>
example shows how to display a spreadsheet in HTML using the classes for spreadsheet display.
</p>
<a name="to-csv" id="to-csv"></a><a name="ToCSV"></a>
<h3 class="boxed">ToCSV</h3>
<p>The <a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/ToCSV.java">ToCSV</a>
<p>The <a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/ToCSV.java">ToCSV</a>
example demonstrates <em>one</em> way to convert an Excel spreadsheet into a CSV file.
</p>
</div>
@ -510,120 +510,120 @@ document.write("Last Published: " + document.lastModified);
<h2 class="boxed">HSSF-only Examples</h2>
<div class="section">
<p>All the HSSF-only examples can be found in
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/">SVN</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/">SVN</a>
</p>
<ul>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/CellComments.java">CellComments</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/CellComments.java">CellComments</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/HyperlinkFormula.java">HyperlinkFormula</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/HyperlinkFormula.java">HyperlinkFormula</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/EventExample.java">EventExample</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/EventExample.java">EventExample</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/OfficeDrawingWithGraphics.java">OfficeDrawingWithGraphics</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/OfficeDrawingWithGraphics.java">OfficeDrawingWithGraphics</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/CreateDateCells.java">CreateDateCells</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/CreateDateCells.java">CreateDateCells</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/NewWorkbook.java">NewWorkbook</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/NewWorkbook.java">NewWorkbook</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/EmeddedObjects.java">EmeddedObjects</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/EmeddedObjects.java">EmeddedObjects</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/Hyperlinks.java">Hyperlinks</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/Hyperlinks.java">Hyperlinks</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/OfficeDrawing.java">OfficeDrawing</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/OfficeDrawing.java">OfficeDrawing</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/HSSFReadWrite.java">HSSFReadWrite</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/HSSFReadWrite.java">HSSFReadWrite</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/NewSheet.java">NewSheet</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/NewSheet.java">NewSheet</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/SplitAndFreezePanes.java">SplitAndFreezePanes</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/SplitAndFreezePanes.java">SplitAndFreezePanes</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/InCellLists.java">InCellLists</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/InCellLists.java">InCellLists</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/RepeatingRowsAndColumns.java">RepeatingRowsAndColumns</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/RepeatingRowsAndColumns.java">RepeatingRowsAndColumns</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/MergedCells.java">MergedCells</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/MergedCells.java">MergedCells</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/CellTypes.java">CellTypes</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/CellTypes.java">CellTypes</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/ZoomSheet.java">ZoomSheet</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/ZoomSheet.java">ZoomSheet</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/ReadWriteWorkbook.java">ReadWriteWorkbook</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/ReadWriteWorkbook.java">ReadWriteWorkbook</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/CreateCells.java">CreateCells</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/CreateCells.java">CreateCells</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/Alignment.java">Alignment</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/Alignment.java">Alignment</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/FrillsAndFills.java">FrillsAndFills</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/FrillsAndFills.java">FrillsAndFills</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/AddDimensionedImage.java">AddDimensionedImage</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/AddDimensionedImage.java">AddDimensionedImage</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/Borders.java">Borders</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/Borders.java">Borders</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/NewLinesInCells.java">NewLinesInCells</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/NewLinesInCells.java">NewLinesInCells</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/WorkingWithFonts.java">WorkingWithFonts</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/WorkingWithFonts.java">WorkingWithFonts</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/BigExample.java">BigExample</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/BigExample.java">BigExample</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/Outlines.java">Outlines</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/Outlines.java">Outlines</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/eventusermodel/XLS2CSVmra.java">XLS2CSVmra</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/eventusermodel/XLS2CSVmra.java">XLS2CSVmra</a>
</li>
</ul>
@ -635,160 +635,160 @@ document.write("Last Published: " + document.lastModified);
<h2 class="boxed">XSSF-only Examples</h2>
<div class="section">
<p>All the XSSF-only examples can be found in
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/">SVN</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/">SVN</a>
</p>
<ul>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/CellComments.java">CellComments</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/CellComments.java">CellComments</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/HeadersAndFooters.java">HeadersAndFooters</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/HeadersAndFooters.java">HeadersAndFooters</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/CreateUserDefinedDataFormats.java">CreateUserDefinedDataFormats</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/CreateUserDefinedDataFormats.java">CreateUserDefinedDataFormats</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/CreatePivotTable.java">CreatePivotTable</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/CreatePivotTable.java">CreatePivotTable</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/CreatePivotTable2.java">CreatePivotTable2</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/CreatePivotTable2.java">CreatePivotTable2</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/FillsAndColors.java">FillsAndColors</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/FillsAndColors.java">FillsAndColors</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/WorkingWithBorders.java">WorkingWithBorders</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/WorkingWithBorders.java">WorkingWithBorders</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/BigGridDemo.java">BigGridDemo</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/BigGridDemo.java">BigGridDemo</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/CreateTable.java">CreateTable</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/CreateTable.java">CreateTable</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/CalendarDemo.java">CalendarDemo</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/CalendarDemo.java">CalendarDemo</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/AligningCells.java">AligningCells</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/AligningCells.java">AligningCells</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/SplitAndFreezePanes.java">SplitAndFreezePanes</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/SplitAndFreezePanes.java">SplitAndFreezePanes</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/WorkingWithPageSetup.java">WorkingWithPageSetup</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/WorkingWithPageSetup.java">WorkingWithPageSetup</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/WorkingWithPictures.java">WorkingWithPictures</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/WorkingWithPictures.java">WorkingWithPictures</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/MergingCells.java">MergingCells</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/MergingCells.java">MergingCells</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/CustomXMLMapping.java">CustomXMLMapping</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/CustomXMLMapping.java">CustomXMLMapping</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/SelectedSheet.java">SelectedSheet</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/SelectedSheet.java">SelectedSheet</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/EmbeddedObjects.java">EmbeddedObjects</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/EmbeddedObjects.java">EmbeddedObjects</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/WorkbookProperties.java">WorkbookProperties</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/WorkbookProperties.java">WorkbookProperties</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/NewLinesInCells.java">NewLinesInCells</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/NewLinesInCells.java">NewLinesInCells</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/Outlining.java">Outlining</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/Outlining.java">Outlining</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/CreateCell.java">CreateCell</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/CreateCell.java">CreateCell</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/IterateCells.java">IterateCells</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/IterateCells.java">IterateCells</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/BarChart.java">BarChart</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/BarChart.java">BarChart</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/BarAndLineChart.java">BarAndLineChart</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/BarAndLineChart.java">BarAndLineChart</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/LineChart.java">LineChart</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/LineChart.java">LineChart</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/ScatterChart.java">ScatterChart</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/ScatterChart.java">ScatterChart</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/WorkingWithFonts.java">WorkingWithFonts</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/WorkingWithFonts.java">WorkingWithFonts</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/HyperlinkExample.java">HyperlinkExample</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/HyperlinkExample.java">HyperlinkExample</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/ShiftRows.java">ShiftRows</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/ShiftRows.java">ShiftRows</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/WorkingWithRichText.java">WorkingWithRichText</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/WorkingWithRichText.java">WorkingWithRichText</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/FitSheetToOnePage.java">FitSheetToOnePage</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/FitSheetToOnePage.java">FitSheetToOnePage</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/streaming/HybridStreaming.java">HybridStreaming</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/streaming/HybridStreaming.java">HybridStreaming</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/streaming/Outlining.java">Outlining (SXSSF output)</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/streaming/Outlining.java">Outlining (SXSSF output)</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/streaming/DeferredGeneration.java">DeferredGeneration (SXSSF output)</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/streaming/DeferredGeneration.java">DeferredGeneration (SXSSF output)</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/streaming/SavePasswordProtectedXlsx.java">SavePasswordProtectedXlsx (SXSSF output)</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/streaming/SavePasswordProtectedXlsx.java">SavePasswordProtectedXlsx (SXSSF output)</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/eventusermodel/XLSX2CSV.java">XLSX2CSV (streaming read)</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/eventusermodel/XLSX2CSV.java">XLSX2CSV (streaming read)</a>
</li>
<li>
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/eventusermodel/FromHowTo.java">FromHowTo (streaming read)</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/eventusermodel/FromHowTo.java">FromHowTo (streaming read)</a>
</li>
</ul>

View File

@ -417,7 +417,7 @@ workbooks then you need to have the following jars in your path:</p>
where POI is unable to evaluate cells for a variety of reasons. If you need to write code
to integrate a worksheet into an app, you may want to know that it's going to work before
you actually try to write that code. ExcelAnt helps with that.</p>
<p>Consider the <a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/excelant/simple-mortgage-calculation.xls">mortgage-calculation.xls</a>
<p>Consider the <a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/excelant/simple-mortgage-calculation.xls">mortgage-calculation.xls</a>
file found in the Examples (link broken / file is missing). This sheet is shown below:</p>
<div style="text-align: center;">
<img class="figure" alt="mortgage calculation spreadsheet" src="images/simple-xls-with-function.jpg"></div>

View File

@ -856,7 +856,7 @@ method (sheet.removeRow(hssfrow)) and create objects just as you
would if creating a new xls. When you are done modifying cells just
call workbook.write(outputstream) just as you did above.</p>
<p>An example of this can be seen in
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/HSSFReadWrite.java">org.apache.poi.hssf.usermodel.examples.HSSFReadWrite</a>.</p>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/HSSFReadWrite.java">org.apache.poi.hssf.usermodel.examples.HSSFReadWrite</a>.</p>
<a name="event_api" id="event_api"></a><a name="Event+API+%28HSSF+Only%29"></a>
<h3 class="boxed">Event API (HSSF Only)</h3>
<p>The event API is newer than the User API. It is intended for intermediate
@ -1218,7 +1218,7 @@ some of the rows or cells. It can be found at
<span class="codefrag">/poi-examples/src/main/java/org/apache/poi/examples/hssf/eventusermodel/XLS2CSVmra.java</span>,
and may be called on the command line, or from within your own code.
The latest version is always available from
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/eventusermodel/">subversion</a>.
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/eventusermodel/">subversion</a>.
</p>
<p>
@ -1250,7 +1250,7 @@ The latest version is always available from
file, which you will then pass to SAX.</p>
<p>This example shows how to get at a single known sheet, or at
all sheets in the file. It is based on the example in
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/eventusermodel/FromHowTo.java">svn
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/eventusermodel/FromHowTo.java">svn
poi-examples/src/main/java/org/apache/poi/examples/xssf/eventusermodel/FromHowTo.java</a>
</p>
<div class="code">
@ -1610,10 +1610,10 @@ The latest version is always available from
For a fuller example, including support for fetching number formatting
information and applying it to numeric cells (eg to format dates or
percentages), please see
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/eventusermodel/XLSX2CSV.java">the XLSX2CSV example in svn</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/eventusermodel/XLSX2CSV.java">the XLSX2CSV example in svn</a>
</p>
<p>An example is also <a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/streaming/HybridStreaming.java">provided</a>
<p>An example is also <a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/streaming/HybridStreaming.java">provided</a>
showing how to combine the user API and the SAX API by doing a streaming parse
of larger worksheets and a traditional user-model parse of the rest of a workbook.</p>
<a name="sxssf" id="sxssf"></a><a name="SXSSF+%28Streaming+Usermodel+API%29"></a>

View File

@ -328,7 +328,7 @@ document.write("Last Published: " + document.lastModified);
<li>
For reading very huge files, take a look at the sample
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/eventusermodel/XLSX2CSV.java">XLSX2CSV</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/eventusermodel/XLSX2CSV.java">XLSX2CSV</a>
which shows how you can read a file in streaming fashion (again with some limitations on what information you
can read out of the file, but there are ways to get at most of it if necessary).
</li>

View File

@ -5618,7 +5618,7 @@ the data to populate another drop down list.
</div>
</div>
<p> See more examples on Excel conditional formatting in
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/ConditionalFormats.java">ConditionalFormats.java</a>
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/ConditionalFormats.java">ConditionalFormats.java</a>
</p>
</div>

View File

@ -1271,7 +1271,7 @@ The UDFFinder manages FreeRefFunctions which are our analogy for the VBA code.
</div>
</div>
<p>That is it! Now you can create Java code and register it, allowing your POI based appliction to run spreadsheets that previously were inaccessible.</p>
<p>This example can be found in the <a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/formula">poi-examples/src/main/java/org/apache/poi/examples/ss/formula</a> folder in the source.</p>
<p>This example can be found in the <a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/formula">poi-examples/src/main/java/org/apache/poi/examples/ss/formula</a> folder in the source.</p>
</div>
<p align="right">

View File

@ -340,7 +340,7 @@ document.write("Last Published: " + document.lastModified);
Ideally, patches should be submitted early and often. This is for
two key reasons. Firstly, it's much easier to review smaller patches
than large ones. This means that smaller patches are much more likely
to be applied to SVN in a timely fashion. Secondly, by sending in your
to be applied to Git in a timely fashion. Secondly, by sending in your
patches earlier rather than later, it's much easier to get feedback
on your coding and direction. If you've missed an easier way to do something,
or are duplicating some (probably hidden) existing code, or taking things

View File

@ -311,7 +311,7 @@ document.write("Last Published: " + document.lastModified);
First make sure that Java is set up properly and that you can execute the 'javac' executable in your shell.
</p>
<p>
Next, open Eclipse and create either a local SVN repository, or a copy of the Git repository,
Next, open Eclipse and create a copy of the Git repository,
and import the project into Eclipse.
</p>
<p>

View File

@ -221,23 +221,13 @@ document.write("Last Published: " + document.lastModified);
<a href="https://www.apache.org/dev/version-control.html">version control page.</a>
</p>
<p>Apache POI uses <a href="https://subversion.apache.org">Subversion</a> as its version control system,
but also has a read-only git mirror
</p>
<p>
<strong>NOTE</strong>: When checking out a subproject using
subversion, either perform a sparse checkout or check out
the trunk or a single branch or tag to avoid filling up
your hard-disk and wasting bandwidth.
<p>Apache POI uses Git as its version control system. We switch from Subversion to Git
in July 2025.
</p>
<ul>
<li>For read only access to the latest Apache POI code, please use
<a href="https://svn.apache.org/repos/asf/poi/trunk/">https://svn.apache.org/repos/asf/poi/trunk/</a>
</li>
<li>To browse the svn repository in your web browser, please use
<a href="https://svn.apache.org/viewvc/poi/">ViewVC</a>
<li>For access to the latest Apache POI code, please use
<a href="https://github.com/apache/poi/tree/trunk/">https://github.com/apache/poi/tree/trunk/</a>
</li>
</ul>
@ -251,237 +241,14 @@ document.write("Last Published: " + document.lastModified);
<h2 class="boxed">Git access to POI sources</h2>
<div class="section">
<p>
The master source repository for Apache POI is the Subversion
one listed above. To support those users and developers who prefer
to use the Git tooling, read-only access to the POI source tree is
also available via Git. The Git mirrors normally track SVN to
within a few minutes.
The trunk source repository for Apache POI is in gitbox.apache.org.
The GitHub mirror can be used to access the repo too (https://github.com/apache/poi).
You can create PRs and issues using GitHub, if you like.
</p>
<p>
The official read-only Git repository for Apache POI is available
from <a href="https://git.apache.org/">git.apache.org/</a> .
The Git Clone URL is: <a href="git://git.apache.org/poi.git">git://git.apache.org/poi.git</a>
and Https Clone URL: <a href="https://git.apache.org/poi.git">https://git.apache.org/poi.git</a> .
Please see the <a href="https://git.apache.org/">Git at
Apache</a> page for more details on the service.
</p>
<p>
In addition to the <a href="https://git.apache.org/">git.apache.org</a>
repository, changes are also mirrored in near-realtime to GitHub.
The GitHub repository is available at
<a href="https://github.com/apache/poi">https://github.com/apache/poi</a> .
Please note that the GitHub repository is read-only, but pull requests sent
to it will result in an email being sent to the mailing list. A Git-formatted
patch added to Bugzilla is generally preferred though, as it can be tracked
along with all the other contributions. Please see the
<a href="../devel/guidelines.html">contribution guidelines</a> for more
information on getting involved in the project.</p>
</div>
<a name="Using+Git+via+the+SVN-Git+bridge"></a>
<h2 class="boxed">Using Git via the SVN-Git bridge</h2>
<div class="section">
<a name="General+information"></a>
<h3 class="boxed">General information</h3>
<p>
Git provides a nice functionality "git-svn" which allows to read the history
of a Subversion repository and convert it into a full Git repository. This
will keep information from the SVN revisions so that the Git repository can
be updated with newer revisions from Subversion as well as allowing to push
commits from Git "upstream" into the Subversion repository. See the
<a href="https://www.kernel.org/pub/software/scm/git/docs/git-svn.html">
official documentation</a> for more details.
</p>
<a name="Set+up+the+repository"></a>
<h3 class="boxed">Set up the repository</h3>
<p>
The git-svn functionality is provided as a set of sub-commands to
"git svn". To start retrieving information from SVN and create the
initial Git repository run the following command:
</p>
<div class="code">
<div class="codeline">
<span class="lineno"></span><span class="codebody"></span>
</div>
<div class="codeline">
<span class="lineno"></span><span class="codebody">git svn clone https://svn.apache.org/repos/asf/poi/trunk poisvngit --revision </span>
</div>
<div class="codeline">
<span class="lineno"></span><span class="codebody"></span>
</div>
<div class="codeline">
<span class="lineno"></span><span class="codebody"></span>
</div>
<div class="codeline">
<span class="lineno"></span><span class="codebody"></span>
</div>
</div>
<p>
Running without <span class="codefrag">--revision from:HEAD</span> will run for a long time and will retrieve the full version history of
the Subversion repository. If you need more repository history, change the <span class="codefrag">from</span> revision to an
<a href="https://svn.apache.org/viewvc/poi/tags/">earlier release</a> or omit the <span class="codefrag">--revision</span>
specifier altogether.
</p>
<p>
When this finishes you have a Git repository whose "master" branch
mirrors the SVN "trunk".
<br>
From here you can use the full power of Git, i.e. quick branching,
rebasing, merging, ...
<br>
See below for some common usage hints.
</p>
<a name="Fetching+newer+SVN+revisions"></a>
<h3 class="boxed">Fetching newer SVN revisions</h3>
<p>
In order to fetch the latest SVN revisions, you need to "rebase" onto
the SVN trunk:
</p>
<div class="code">
<div class="codeline">
<span class="lineno"></span><span class="codebody"></span>
</div>
<div class="codeline">
<span class="lineno"></span><span class="codebody">git checkout master</span>
</div>
<div class="codeline">
<span class="lineno"></span><span class="codebody">git svn rebase</span>
</div>
<div class="codeline">
<span class="lineno"></span><span class="codebody"></span>
</div>
</div>
<p>
This will fetch the latest changes from Subversion and will rebase
the master-branch onto them.
</p>
<a name="Pushing+Git+commits+to+Subversion"></a>
<h3 class="boxed">Pushing Git commits to Subversion</h3>
<p>
The following command will push all changes on <span class="codefrag">master</span> back to
Subversion:
</p>
<div class="code">
<div class="codeline">
<span class="lineno"></span><span class="codebody"></span>
</div>
<div class="codeline">
<span class="lineno"></span><span class="codebody">git svn dcommit</span>
</div>
<div class="codeline">
<span class="lineno"></span><span class="codebody"></span>
</div>
</div>
<p>
Note that usually all commits on master will be sent to Subversion
in one go, so it's similar to a "push" to another Git repository.
The dcommit may fail if there are newer revisions in Subversion, you
will need to run a <span class="codefrag">git svn rebase</span> first in this case.
</p>
<a name="General+usage+guidelines"></a>
<h3 class="boxed">General usage guidelines</h3>
<p>
Although you can use the full power of Git, there are a few
things that work well and some things that will get you into
trouble:
</p>
<p>
You should not develop on master, rather use some branching
concept where you do work on sub-branches and only merge/cherry-pick the
changes that are ready for being sent upstream.
It seems to work better to constantly rebase changes onto the
master branch as this will keep the history clean compared to
the SVN repository and will avoid sending useless "Merge" commits to
Subversion.
</p>
<p>
You can keep some changes that are only useful locally by using
two branches that are rebased onto each other. E.g.
something like the following has proven to work well:
</p>
<div class="code">
<div class="codeline">
<span class="lineno"></span><span class="codebody"></span>
</div>
<div class="codeline">
<span class="lineno"></span><span class="codebody">master</span>
</div>
<div class="codeline">
<span class="lineno"></span><span class="codebody"> -&gt; localchanges - commits that should not be sent upstream -&gt;</span>
</div>
<div class="codeline">
<span class="lineno"></span><span class="codebody"> -&gt; workbranch - place for doing development work</span>
</div>
<div class="codeline">
<span class="lineno"></span><span class="codebody"></span>
</div>
</div>
<p>
When things are ready in the workbranch do a
</p>
<div class="code">
<div class="codeline">
<span class="lineno"></span><span class="codebody"></span>
</div>
<div class="codeline">
<span class="lineno"></span><span class="codebody">git checkout master</span>
</div>
<div class="codeline">
<span class="lineno"></span><span class="codebody">git cherry-pick commitid ...</span>
</div>
<div class="codeline">
<span class="lineno"></span><span class="codebody"></span>
</div>
</div>
<p>
to get all the finished commits onto master as preparation for pushing them upstream.
Then you can <span class="codefrag">git svn dcommit</span> to send the changes upstream
and a <span class="codefrag">git svn rebase</span> to get master updated with the newly
created SVN revisions.
Finally do the following to update both branches onto the new SVN head
</p>
<div class="code">
<div class="codeline">
<span class="lineno"></span><span class="codebody"></span>
</div>
<div class="codeline">
<span class="lineno"></span><span class="codebody"># rebase you local changes onto the latest SVN state</span>
</div>
<div class="codeline">
<span class="lineno"></span><span class="codebody">git checkout localchanges</span>
</div>
<div class="codeline">
<span class="lineno"></span><span class="codebody">git rebase master</span>
</div>
<div class="codeline">
<span class="lineno"></span><span class="codebody"></span>
</div>
<div class="codeline">
<span class="lineno"></span><span class="codebody"># also set the working branch to the latest state from SVN.</span>
</div>
<div class="codeline">
<span class="lineno"></span><span class="codebody">git checkout workbranch</span>
</div>
<div class="codeline">
<span class="lineno"></span><span class="codebody">git rebase workbranch</span>
</div>
<div class="codeline">
<span class="lineno"></span><span class="codebody"></span>
</div>
</div>
<p>
Sounds like too much work? Put these steps into a small script and all
this will become a simple <span class="codefrag">poiupdate</span> to get all branches
rebased onto HEAD from Subversion.
</p>
</div>
<a name="Code+metrics"></a>
<h2 class="boxed">Code metrics </h2>
<h2 class="boxed">Code metrics</h2>
<div class="section">
<p>
Code quality reports for Apache POI are available on the

View File

@ -568,7 +568,7 @@ document.write("Last Published: " + document.lastModified);
<a href="components/">default dependencies</a>:</p>
<ul>
<li>BouncyCastle bcpkix, bcprov and bcutil (tested against 1.80)</li>
<li>BouncyCastle bcpkix, bcprov and bcutil (tested against 1.81)</li>
<li>Apache Santuario "xmlsec" (tested against 3.0.5)</li>
@ -581,7 +581,7 @@ document.write("Last Published: " + document.lastModified);
depend on supporting services and although the code is adopted, the integration is not well tested ... please support us on
integration (testing) with timestamp and revocation (OCSP) services.
</p>
<p>Further test examples can be found in the corresponding <a href="https://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/poifs/crypt/dsig/TestSignatureInfo.java?view=markup">test class</a>.</p>
<p>Further test examples can be found in the corresponding <a href="https://github.com/apache/poi/tree/trunk/poi-ooxml/src/test/java/org/apache/poi/poifs/crypt/dsig/TestSignatureInfo.java?view=markup">test class</a>.</p>
<p>If you want to use a hash algorithm with 64 bytes (currently only applies to SHA512),
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42061">a base64 "feature"</a> in xmlsec
leads to line breaks in the digest values, which won't be accepted by Office. To workaround this, you
@ -823,7 +823,7 @@ document.write("Last Published: " + document.lastModified);
<p>The code example, written by PJ Fanning, modifies the behavior of SXSSFWorkbook
to extract an OOXML spreadsheet zipped container and write the contents to disk using AES
encryption.</p>
<p>See <a href="https://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/temp/SXSSFWorkbookWithCustomZipEntrySource.java?view=markup">SXSSFWorkbookWithCustomZipEntrySource.java</a>
<p>See <a href="https://github.com/apache/poi/tree/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/temp/SXSSFWorkbookWithCustomZipEntrySource.java?view=markup">SXSSFWorkbookWithCustomZipEntrySource.java</a>
and other <a href="https://svn.apache.org/viewvc?view=revision&amp;revision=1768744">files</a>
that are needed for this example.</p>
</div>

View File

@ -505,8 +505,8 @@ case HSSFCell.CELL_TYPE_NUMERIC:
<p>Apache POI ships with a few programs and a few example programs,
which can be used to do some basic performance checks. For testing
file generation, the class to use is in the examples package,
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/SSPerformanceTest.java">SSPerformanceTest</a>
(<a href="https://svn.apache.org/viewvc/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/SSPerformanceTest.java">viewvc</a>).
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/SSPerformanceTest.java">SSPerformanceTest</a>
(<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/SSPerformanceTest.java">viewvc</a>).
Run SSPerformanceTest with arguments of the writing type (HSSF, XSSF
or SXSSF), the number rows, the number of columns, and if the file
should be saved. If you can't run that with 50,000 rows and 50 columns
@ -514,11 +514,11 @@ case HSSFCell.CELL_TYPE_NUMERIC:
(and ideally all 3 in less than that!), then the problem is with
your environment.</p>
<p>Next, use the example program
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/ToCSV.java">ToCSV</a>
(<a href="https://svn.apache.org/viewvc/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/ToCSV.java">viewvc</a>)
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/ToCSV.java">ToCSV</a>
(<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/ss/ToCSV.java">viewvc</a>)
to try reading the file in with HSSF or XSSF. Related is
<a href="https://svn.apache.org/repos/asf/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/eventusermodel/XLSX2CSV.java">XLSX2CSV</a>
(<a href="https://svn.apache.org/viewvc/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/eventusermodel/XLSX2CSV.java">viewvc</a>),
<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/eventusermodel/XLSX2CSV.java">XLSX2CSV</a>
(<a href="https://github.com/apache/poi/tree/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/eventusermodel/XLSX2CSV.java">viewvc</a>),
which uses SAX parsing for .xlsx. Run this against both your problem file,
and a simple one generated by SSPerformanceTest of the same size. If this is
slow, then there could be an Apache POI problem with how the file is being
@ -546,7 +546,7 @@ case HSSFCell.CELL_TYPE_NUMERIC:
the common parts. Use the sources off <em>poi-ooxml-full</em> for the lite version,
which is available from Maven Central - ask your favourite Maven
mirror for the <em>poi-ooxml-full-*-sources</em> jar. Alternately, if you download
the POI source distribution (or checkout from SVN) and build, Ant will
the POI source distribution (or checkout from Git) and build, Ant will
automatically compile it for you to generate the source and binary poi-ooxml-full jars.</p>
</div>
<a name="faq-N101BA"></a>