<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://schlaun.bitplan.com/index.php?action=history&amp;feed=atom&amp;title=Office</id>
	<title>Office - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://schlaun.bitplan.com/index.php?action=history&amp;feed=atom&amp;title=Office"/>
	<link rel="alternate" type="text/html" href="https://schlaun.bitplan.com/index.php?title=Office&amp;action=history"/>
	<updated>2026-04-21T00:32:18Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.5</generator>
	<entry>
		<id>https://schlaun.bitplan.com/index.php?title=Office&amp;diff=22&amp;oldid=prev</id>
		<title>Wf: transfered by WikiBackup wikiTask at 2020-07-26T12:20:45Z</title>
		<link rel="alternate" type="text/html" href="https://schlaun.bitplan.com/index.php?title=Office&amp;diff=22&amp;oldid=prev"/>
		<updated>2020-07-26T12:20:46Z</updated>

		<summary type="html">&lt;p&gt;transfered by WikiBackup wikiTask at 2020-07-26T12:20:45Z&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Introduction ==&lt;br /&gt;
The templates on this page are {{Link|target=Template:Wikitask|title=Wikitask}} helper templates to work with Office Documents. &lt;br /&gt;
The Java library being used for Microsoft Office Documents is {{Link|target=https://poi.apache.org/|title=Apache POI}}. For the Access to Adobe Portable&lt;br /&gt;
Document Files {{Link|target=https://pdfbox.apache.org/|title=Apache PDFBox}} is used.&lt;br /&gt;
&lt;br /&gt;
=== Supported Document Formats ===&lt;br /&gt;
{| class='wikitable sortable'&lt;br /&gt;
! Logo&lt;br /&gt;
! Format&lt;br /&gt;
! Documentation&lt;br /&gt;
! Stackoverflow &lt;br /&gt;
! Tutorial example&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;img src='http://img4.wikia.nocookie.net/__cb20110818174528/logopedia/images/thumb/b/bb/Microsoft_Word_2010_Icon.svg/80px-Microsoft_Word_2010_Icon.svg.png'/&amp;gt;&lt;br /&gt;
| {{Link|target=Office#Word|title=Word docx}}&lt;br /&gt;
| {{Link|target=http://poi.apache.org/document/quick-guide-xwpf.html|title=XWPF}}&lt;br /&gt;
| {{Link|target=http://stackoverflow.com/questions/tagged/xwpf|title=xwpf}}&lt;br /&gt;
| {{Link|target=WikiTaskTutorial/Word}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;img src='http://img3.wikia.nocookie.net/__cb20130608224647/logopedia/images/thumb/4/43/Office_Word_2000.svg/80px-Office_Word_2000.svg.png'/&amp;gt;&lt;br /&gt;
| {{Link|target=Office#Word97|title=Word97 doc}}&lt;br /&gt;
| {{Link|target=http://poi.apache.org/document/quick-guide.html|title=HWPF}}&lt;br /&gt;
| {{Link|target=http://stackoverflow.com/questions/tagged/hwpf|title=hwpf}}&lt;br /&gt;
| {{Link|target=WikiTaskTutorial/Word97}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;img src='http://img2.wikia.nocookie.net/__cb20120509174748/logopedia/images/thumb/3/38/It%27s_EXCELlent!.png/80px-It%27s_EXCELlent!.png'/&amp;gt;&lt;br /&gt;
| {{Link|target=Office#Excel|title=Excel xlsx}}&lt;br /&gt;
| {{Link|target=https://poi.apache.org/spreadsheet/quick-guide.html|title=HSSF+XSSF}}&lt;br /&gt;
| {{Link|target=http://stackoverflow.com/questions/tagged/xssf|title=xssf}}&lt;br /&gt;
| {{Link|target=WikiTaskTutorial/Excel}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;img src='http://img3.wikia.nocookie.net/__cb20120507131818/logopedia/images/thumb/1/1c/Excel.gif/80px-Excel.gif'/&amp;gt;&lt;br /&gt;
| {{Link|target=Office#Excel97|title=Excel 97 xls}}&lt;br /&gt;
| {{Link|target=https://poi.apache.org/spreadsheet/quick-guide.html|title=HSSF+XSSF}} {{Link|target=https://poi.apache.org/spreadsheet/diagram1.html|title=HSSF UML diagram}}&lt;br /&gt;
| {{Link|target=http://stackoverflow.com/questions/tagged/hssf|title=hssf}}&lt;br /&gt;
| {{Link|target=WikiTaskTutorial/Excel97}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;img src='http://img3.wikia.nocookie.net/__cb20120509173954/logopedia/images/thumb/0/04/PowerPoint.png/80px-PowerPoint.png'/&amp;gt;&lt;br /&gt;
| {{Link|target=Office#Powerpoint|title=Powerpoint pptx}}&lt;br /&gt;
| {{Link|target=http://poi.apache.org/slideshow/xslf-cookbook.html|title=XSLF}}&lt;br /&gt;
| {{Link|target=http://stackoverflow.com/questions/tagged/xslf|title=xslf}}&lt;br /&gt;
| {{Link|target=WikiTaskTutorial/Powerpoint}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;img src='http://img3.wikia.nocookie.net/__cb20130617071432/logopedia/images/thumb/f/ff/Office_PowerPoint_2000.svg/80px-Office_PowerPoint_2000.svg.png'/&amp;gt;&lt;br /&gt;
| {{Link|target=Office#Powerpoint97|title=Powerpoint97 ppt}}&lt;br /&gt;
| {{Link|target=http://poi.apache.org/slideshow/how-to-shapes.html|title=HSLF}}&lt;br /&gt;
| {{Link|target=http://stackoverflow.com/questions/tagged/hslf|title=hslf}}&lt;br /&gt;
| {{Link|target=WikiTaskTutorial/Powerpoint97}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;img src='http://www.adobe.com/images/pdficon_large.png' width='64px'/&amp;gt;&lt;br /&gt;
| Portable Document Format pdf&lt;br /&gt;
| {{Link|https://pdfbox.apache.org/|title=PDF}}&lt;br /&gt;
| {{Link|target=http://stackoverflow.com/questions/tagged/pdfbox|title=pdfbox}}&lt;br /&gt;
| {{Link|target=WikiTaskTutorial/Portable Document Format}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;img src='http://www.lenashore.com/wp-content/uploads/2014/01/vc-ard.png' width='64px'/&amp;gt;&lt;br /&gt;
| VCard vcf&lt;br /&gt;
| {{Link|https://tools.ietf.org/html/rfc6350|title=VCard}}&lt;br /&gt;
| {{Link|target=http://stackoverflow.com/questions/tagged/vcard|title=vcard}}&lt;br /&gt;
| {{Link|target=WikiTaskTutorial/VCard}}&lt;br /&gt;
|}&lt;br /&gt;
The above table shows the supported Document Formats and has links to the Apache POI documentation, corressponding Stackoverflow questions and the&lt;br /&gt;
WikiTask tutorial example for each document format.&lt;br /&gt;
&lt;br /&gt;
== Templates ==&lt;br /&gt;
=== template structure ===&lt;br /&gt;
The following templates have a common structure. First the arguments are declared:&lt;br /&gt;
==== @args: arguments ====&lt;br /&gt;
&amp;lt;source lang='java' id='args'&amp;gt;&lt;br /&gt;
@args() {&lt;br /&gt;
  String title &lt;br /&gt;
  String logo&lt;br /&gt;
  org.sidif.wiki.WikiTask wikiTask&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The argument/parameter wikiTask holds the information how the template is called. The input can e.g. be fetched from wikiTask.getInput(). It should&lt;br /&gt;
contain the URL of a Microsoft Office Document&lt;br /&gt;
&lt;br /&gt;
==== @import: import statements ====&lt;br /&gt;
&amp;lt;source lang='java' id='import'&amp;gt;&lt;br /&gt;
@import java.net.URL&lt;br /&gt;
@import org.apache.poi.xwpf.usermodel.XWPFDocument;&lt;br /&gt;
@import org.apache.poi.xwpf.usermodel.XWPFParagraph&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The import statements are specific to the Office document format being used. See [[{{FULLPAGENAME}}#Supported_Microsoft_Office_Document_Formats]].&lt;br /&gt;
==== java code and class declaration ====&lt;br /&gt;
&amp;lt;source lang='java' id='class'&amp;gt;&lt;br /&gt;
@{&lt;br /&gt;
  class WordDocx {&lt;br /&gt;
   ...&lt;br /&gt;
&lt;br /&gt;
    public WordDocx(String url) {&lt;br /&gt;
      ...&lt;br /&gt;
    } &lt;br /&gt;
  } // WordDocx&lt;br /&gt;
  WordDocx docx=new WordDocx(wikiTask.getInput());&lt;br /&gt;
 &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In a Java Code section &amp;lt;nowiki&amp;gt;@{...}&amp;lt;/nowiki&amp;gt; a class corresponding to the Microsoft Office Document Format is declared.&lt;br /&gt;
The constructor takes a url as a parameter. From such a url e.g. http://somedomain/somedocument.doc the Document is fetched.&lt;br /&gt;
==== constructor and error handling ====&lt;br /&gt;
&amp;lt;source lang='java' id='errorhandling'&amp;gt;&lt;br /&gt;
    public XWPFDocument doc;&lt;br /&gt;
    public Throwable error;&lt;br /&gt;
 &lt;br /&gt;
    public WordDocx(String url) {&lt;br /&gt;
      try {&lt;br /&gt;
        InputStream is = new URL(url).openStream();&lt;br /&gt;
        doc = new XWPFDocument(is);&lt;br /&gt;
      }  catch (Throwable th) {&lt;br /&gt;
        error=th;&lt;br /&gt;
      }&lt;br /&gt;
    } &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The constructor tries to open the document as the corresponding Apache POI document type. E.g. a docx document is openend as XWPFDocument. &lt;br /&gt;
If this fails the Exception/Throwable caught will be available in the member variable error.&lt;br /&gt;
&lt;br /&gt;
=== Word ===&lt;br /&gt;
{| class='wikitable sortable'&lt;br /&gt;
! Logo&lt;br /&gt;
! Format&lt;br /&gt;
! Apache POI documentation&lt;br /&gt;
! Stackoverflow &lt;br /&gt;
! Tutorial example&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;img src='http://img4.wikia.nocookie.net/__cb20110818174528/logopedia/images/thumb/b/bb/Microsoft_Word_2010_Icon.svg/80px-Microsoft_Word_2010_Icon.svg.png'/&amp;gt;&lt;br /&gt;
| Word docx&lt;br /&gt;
| {{Link|target=http://poi.apache.org/document/quick-guide-xwpf.html|title=XWPF}}&lt;br /&gt;
| {{Link|target=http://stackoverflow.com/questions/tagged/xwpf|title=xwpf}}&lt;br /&gt;
| {{Link|target=WikiTaskTutorial/Word}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;source lang='java' id='word'&amp;gt;&lt;br /&gt;
@args() {&lt;br /&gt;
  String title &lt;br /&gt;
  String logo&lt;br /&gt;
  org.sidif.wiki.WikiTask wikiTask&lt;br /&gt;
}&lt;br /&gt;
@import java.net.URL&lt;br /&gt;
@import org.apache.poi.xwpf.usermodel.XWPFDocument;&lt;br /&gt;
@import org.apache.poi.xwpf.usermodel.XWPFParagraph;&lt;br /&gt;
@{&lt;br /&gt;
  class WordDocx {&lt;br /&gt;
    public XWPFDocument doc;&lt;br /&gt;
    public Throwable error;&lt;br /&gt;
    &lt;br /&gt;
    public WordDocx(String url) {&lt;br /&gt;
      try {&lt;br /&gt;
        InputStream is = new URL(url).openStream();&lt;br /&gt;
        doc = new XWPFDocument(is);&lt;br /&gt;
      }  catch (Throwable th) {&lt;br /&gt;
        error=th;&lt;br /&gt;
      }&lt;br /&gt;
    } &lt;br /&gt;
  } // WordDocx&lt;br /&gt;
  WordDocx docx=new WordDocx(wikiTask.getInput());&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Word97 ===&lt;br /&gt;
&lt;br /&gt;
{| class='wikitable sortable'&lt;br /&gt;
! Logo&lt;br /&gt;
! Format&lt;br /&gt;
! Apache POI documentation&lt;br /&gt;
! Stackoverflow &lt;br /&gt;
! Tutorial example&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;img src='http://img3.wikia.nocookie.net/__cb20130608224647/logopedia/images/thumb/4/43/Office_Word_2000.svg/80px-Office_Word_2000.svg.png'/&amp;gt;&lt;br /&gt;
| Word97 doc&lt;br /&gt;
| {{Link|target=http://poi.apache.org/document/quick-guide.html|title=HWPF}}&lt;br /&gt;
| {{Link|target=http://stackoverflow.com/questions/tagged/hwpf|title=hwpf}}&lt;br /&gt;
| {{Link|target=WikiTaskTutorial/Word97}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;source lang='java' id='word97'&amp;gt;&lt;br /&gt;
@args() {&lt;br /&gt;
  String title &lt;br /&gt;
  String logo&lt;br /&gt;
  org.sidif.wiki.WikiTask wikiTask&lt;br /&gt;
}&lt;br /&gt;
@import java.net.URL&lt;br /&gt;
@import org.apache.poi.hwpf.HWPFDocument;&lt;br /&gt;
@import org.apache.poi.hwpf.extractor.WordExtractor;&lt;br /&gt;
@import org.apache.poi.hwpf.usermodel.Range;&lt;br /&gt;
@import org.apache.poi.poifs.filesystem.POIFSFileSystem;&lt;br /&gt;
@{&lt;br /&gt;
  class WordDoc {&lt;br /&gt;
    public HWPFDocument doc;&lt;br /&gt;
    public WordExtractor we;&lt;br /&gt;
    public Range range;&lt;br /&gt;
    public Throwable error;&lt;br /&gt;
&lt;br /&gt;
    public WordDoc(String url) {&lt;br /&gt;
      try {&lt;br /&gt;
        InputStream is = new URL(url).openStream();&lt;br /&gt;
        POIFSFileSystem fs = new POIFSFileSystem(is);&lt;br /&gt;
        doc = new HWPFDocument(fs);&lt;br /&gt;
        we = new WordExtractor(doc);&lt;br /&gt;
        range = doc.getRange();&lt;br /&gt;
      } catch (Throwable th) {&lt;br /&gt;
        error=th;&lt;br /&gt;
      }&lt;br /&gt;
    } &lt;br /&gt;
  } // WordDoc&lt;br /&gt;
  WordDoc doc=new WordDoc(wikiTask.getInput());&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Excel ===&lt;br /&gt;
{| class='wikitable sortable'&lt;br /&gt;
! Logo&lt;br /&gt;
! Format&lt;br /&gt;
! Apache POI documentation&lt;br /&gt;
! Stackoverflow &lt;br /&gt;
! Tutorial example&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;img src='http://img2.wikia.nocookie.net/__cb20120509174748/logopedia/images/thumb/3/38/It%27s_EXCELlent!.png/80px-It%27s_EXCELlent!.png'/&amp;gt;&lt;br /&gt;
| Excel xlsx&lt;br /&gt;
| {{Link|target=https://poi.apache.org/spreadsheet/quick-guide.html|title=HSSF+XSSF}}&lt;br /&gt;
| {{Link|target=http://stackoverflow.com/questions/tagged/xssf|title=xssf}}&lt;br /&gt;
| {{Link|target=WikiTaskTutorial/Excel}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;source lang='java' id='excel'&amp;gt;&lt;br /&gt;
@args() {&lt;br /&gt;
  String title &lt;br /&gt;
  String logo&lt;br /&gt;
  org.sidif.wiki.WikiTask wikiTask&lt;br /&gt;
}&lt;br /&gt;
@import java.net.URL&lt;br /&gt;
@import org.apache.poi.ss.usermodel.Cell&lt;br /&gt;
@import org.apache.poi.ss.usermodel.Row&lt;br /&gt;
@import org.apache.poi.xssf.usermodel.XSSFSheet&lt;br /&gt;
@import org.apache.poi.xssf.usermodel.XSSFWorkbook&lt;br /&gt;
@import org.apache.poi.xssf.usermodel.XSSFCell&lt;br /&gt;
@import org.apache.poi.xssf.usermodel.XSSFRow&lt;br /&gt;
@{&lt;br /&gt;
  class Excel {&lt;br /&gt;
    public XSSFWorkbook workbook =null;&lt;br /&gt;
    public Throwable error;&lt;br /&gt;
&lt;br /&gt;
    public List&amp;lt;List&amp;lt;String&amp;gt;&amp;gt; getSheetContent(XSSFSheet sheet) {&lt;br /&gt;
      List&amp;lt;List&amp;lt;String&amp;gt;&amp;gt; result=new ArrayList&amp;lt;List&amp;lt;String&amp;gt;&amp;gt;();&lt;br /&gt;
      Iterator&amp;lt;Row&amp;gt; rows = sheet.rowIterator();&lt;br /&gt;
      while (rows.hasNext()) {&lt;br /&gt;
        XSSFRow row = (XSSFRow) rows.next();&lt;br /&gt;
        Iterator&amp;lt;Cell&amp;gt; cells = row.cellIterator();&lt;br /&gt;
        List&amp;lt;String&amp;gt; rowList=new ArrayList&amp;lt;String&amp;gt;();&lt;br /&gt;
        while (cells.hasNext()) {&lt;br /&gt;
          XSSFCell cell = (XSSFCell) cells.next();&lt;br /&gt;
          String cellValue = cell.toString();&lt;br /&gt;
          if (!&amp;quot;&amp;quot;.equals(cellValue))&lt;br /&gt;
            rowList.add(cellValue);&lt;br /&gt;
        }&lt;br /&gt;
        if (rowList.size()&amp;gt;0)&lt;br /&gt;
          result.add(rowList);&lt;br /&gt;
      }&lt;br /&gt;
      return result;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public Excel(String url) {&lt;br /&gt;
      // http://stackoverflow.com/questions/5836965/how-to-open-xlsx-files-with-poi-ss&lt;br /&gt;
      try {&lt;br /&gt;
        InputStream is = new URL(url).openStream();&lt;br /&gt;
        workbook = new XSSFWorkbook(is);&lt;br /&gt;
      } catch (Throwable th) {&lt;br /&gt;
        error=th;&lt;br /&gt;
      }&lt;br /&gt;
    } &lt;br /&gt;
  } // Excel&lt;br /&gt;
  Excel excel=new Excel(wikiTask.getInput());&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Excel97 ===&lt;br /&gt;
{| class='wikitable sortable'&lt;br /&gt;
! Logo&lt;br /&gt;
! Format&lt;br /&gt;
! Apache POI documentation&lt;br /&gt;
! Stackoverflow &lt;br /&gt;
! Tutorial example&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;img src='http://img3.wikia.nocookie.net/__cb20120507131818/logopedia/images/thumb/1/1c/Excel.gif/80px-Excel.gif'/&amp;gt;&lt;br /&gt;
| Excel97 xls&lt;br /&gt;
| {{Link|target=https://poi.apache.org/spreadsheet/quick-guide.html|title=HSSF+XSSF}} {{Link|target=https://poi.apache.org/spreadsheet/diagram1.html|title=HSSF UML diagram}}&lt;br /&gt;
| {{Link|target=http://stackoverflow.com/questions/tagged/hssf|title=hssf}}&lt;br /&gt;
| {{Link|target=WikiTaskTutorial/Excel97}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;source lang='java' id='excel97'&amp;gt;&lt;br /&gt;
@args() {&lt;br /&gt;
  String title &lt;br /&gt;
  String logo&lt;br /&gt;
  org.sidif.wiki.WikiTask wikiTask&lt;br /&gt;
}&lt;br /&gt;
@import java.net.URL&lt;br /&gt;
@import org.apache.poi.ss.usermodel.Row&lt;br /&gt;
@import org.apache.poi.ss.usermodel.Cell&lt;br /&gt;
@import org.apache.poi.hssf.usermodel.HSSFSheet;&lt;br /&gt;
@import org.apache.poi.hssf.usermodel.HSSFWorkbook;&lt;br /&gt;
@import org.apache.poi.hssf.usermodel.HSSFCell;&lt;br /&gt;
@import org.apache.poi.hssf.usermodel.HSSFRow;&lt;br /&gt;
@{&lt;br /&gt;
  class Excel {&lt;br /&gt;
    public HSSFWorkbook workbook =null;&lt;br /&gt;
    public Throwable error;&lt;br /&gt;
&lt;br /&gt;
    public List&amp;lt;List&amp;lt;String&amp;gt;&amp;gt; getSheetContent(HSSFSheet sheet) {&lt;br /&gt;
      List&amp;lt;List&amp;lt;String&amp;gt;&amp;gt; result=new ArrayList&amp;lt;List&amp;lt;String&amp;gt;&amp;gt;();&lt;br /&gt;
      Iterator&amp;lt;Row&amp;gt; rows = sheet.rowIterator();&lt;br /&gt;
      while (rows.hasNext()) {&lt;br /&gt;
        HSSFRow row = (HSSFRow) rows.next();&lt;br /&gt;
        Iterator&amp;lt;Cell&amp;gt; cells = row.cellIterator();&lt;br /&gt;
        List&amp;lt;String&amp;gt; rowList=new ArrayList&amp;lt;String&amp;gt;();&lt;br /&gt;
        int nonempty=0;&lt;br /&gt;
        while (cells.hasNext()) {&lt;br /&gt;
          HSSFCell cell = (HSSFCell) cells.next();&lt;br /&gt;
          String cellValue = cell.toString();&lt;br /&gt;
          if (!&amp;quot;&amp;quot;.equals(cellValue)) {&lt;br /&gt;
            nonempty++;&lt;br /&gt;
            rowList.add(cellValue);&lt;br /&gt;
          } else {&lt;br /&gt;
            rowList.add(&amp;quot;&amp;quot;);&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
        if (nonempty&amp;gt;0)&lt;br /&gt;
          result.add(rowList);&lt;br /&gt;
      }&lt;br /&gt;
      return result;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
    public Excel(String url) {&lt;br /&gt;
      // http://stackoverflow.com/questions/5836965/how-to-open-xlsx-files-with-poi-ss&lt;br /&gt;
      try {&lt;br /&gt;
        InputStream is = new URL(url).openStream();&lt;br /&gt;
        workbook = new HSSFWorkbook(is);&lt;br /&gt;
      }  catch (Throwable th) {&lt;br /&gt;
        error=th;&lt;br /&gt;
      }&lt;br /&gt;
    } &lt;br /&gt;
  } // Excel&lt;br /&gt;
  Excel excel=new Excel(wikiTask.getInput());&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Powerpoint ===&lt;br /&gt;
{| class='wikitable sortable'&lt;br /&gt;
! Logo&lt;br /&gt;
! Format&lt;br /&gt;
! Apache POI documentation&lt;br /&gt;
! Stackoverflow &lt;br /&gt;
! Tutorial example&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;img src='http://img3.wikia.nocookie.net/__cb20120509173954/logopedia/images/thumb/0/04/PowerPoint.png/80px-PowerPoint.png'/&amp;gt;&lt;br /&gt;
| Powerpoint pptx&lt;br /&gt;
| {{Link|target=http://poi.apache.org/slideshow/xslf-cookbook.html|title=XSLF}}&lt;br /&gt;
| {{Link|target=http://stackoverflow.com/questions/tagged/xslf|title=xslf}}&lt;br /&gt;
| {{Link|target=WikiTaskTutorial/Powerpoint}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='java' id='powerpoint'&amp;gt;&lt;br /&gt;
@args() {&lt;br /&gt;
  String title &lt;br /&gt;
  String logo&lt;br /&gt;
  org.sidif.wiki.WikiTask wikiTask&lt;br /&gt;
}&lt;br /&gt;
@import java.net.URL&lt;br /&gt;
@import org.apache.poi.ss.usermodel.Cell&lt;br /&gt;
@import org.apache.poi.xslf.usermodel.XMLSlideShow;&lt;br /&gt;
@import org.apache.poi.xslf.usermodel.XSLFCommentAuthors&lt;br /&gt;
@import org.apache.poi.xslf.usermodel.XSLFComments&lt;br /&gt;
@import org.apache.poi.xslf.usermodel.XSLFCommonSlideData&lt;br /&gt;
@import org.apache.poi.xslf.usermodel.XSLFNotes&lt;br /&gt;
@import org.apache.poi.xslf.usermodel.XSLFRelation&lt;br /&gt;
@import org.apache.poi.xslf.usermodel.XSLFSlide&lt;br /&gt;
@import org.apache.poi.xslf.usermodel.XSLFSlideLayout&lt;br /&gt;
@import org.apache.poi.xslf.usermodel.XSLFSlideMaster&lt;br /&gt;
@{&lt;br /&gt;
  class Powerpoint {&lt;br /&gt;
    public XMLSlideShow slideshow=null;&lt;br /&gt;
    public List&amp;lt;XSLFSlide&amp;gt; slides=null;&lt;br /&gt;
    public Throwable error;&lt;br /&gt;
 &lt;br /&gt;
    public Powerpoint(String url) {&lt;br /&gt;
      try {&lt;br /&gt;
        InputStream is = new URL(url).openStream();&lt;br /&gt;
        slideshow = new XMLSlideShow(is);&lt;br /&gt;
        slides = slideshow.getSlides();&lt;br /&gt;
      } catch (Throwable th) {&lt;br /&gt;
        error=th;&lt;br /&gt;
      }&lt;br /&gt;
    } &lt;br /&gt;
  } // Powerpoint&lt;br /&gt;
  Powerpoint powerpoint=new Powerpoint(wikiTask.getInput());&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Powerpoint97 ===&lt;br /&gt;
{| class='wikitable sortable'&lt;br /&gt;
! Logo&lt;br /&gt;
! Format&lt;br /&gt;
! Apache POI documentation&lt;br /&gt;
! Stackoverflow &lt;br /&gt;
! Tutorial example&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;img src='http://img3.wikia.nocookie.net/__cb20130617071432/logopedia/images/thumb/f/ff/Office_PowerPoint_2000.svg/80px-Office_PowerPoint_2000.svg.png'/&amp;gt;&lt;br /&gt;
| Powerpoint97 ppt&lt;br /&gt;
| {{Link|target=http://poi.apache.org/slideshow/how-to-shapes.html|title=HSLF}}&lt;br /&gt;
| {{Link|target=http://stackoverflow.com/questions/tagged/hslf|title=hslf}}&lt;br /&gt;
| {{Link|target=WikiTaskTutorial/Powerpoint97}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;source lang='java' id='powerpoint97'&amp;gt;&lt;br /&gt;
@args() {&lt;br /&gt;
  String title &lt;br /&gt;
  String logo&lt;br /&gt;
  org.sidif.wiki.WikiTask wikiTask&lt;br /&gt;
}&lt;br /&gt;
@import java.net.URL&lt;br /&gt;
@import org.apache.poi.hslf.usermodel.SlideShow&lt;br /&gt;
@import org.apache.poi.hslf.model.Slide&lt;br /&gt;
@{&lt;br /&gt;
  class Powerpoint {&lt;br /&gt;
    public SlideShow slideshow=null;&lt;br /&gt;
    public Slide[] slides=null;&lt;br /&gt;
    public Throwable error;&lt;br /&gt;
 &lt;br /&gt;
    public Powerpoint(String url) {&lt;br /&gt;
      try {&lt;br /&gt;
        InputStream is = new URL(url).openStream();&lt;br /&gt;
        slideshow = new SlideShow(is);&lt;br /&gt;
        is.close();&lt;br /&gt;
        slides = slideshow.getSlides();&lt;br /&gt;
      } catch (Throwable th) {&lt;br /&gt;
        error=th;&lt;br /&gt;
      }&lt;br /&gt;
    } &lt;br /&gt;
  } // Powerpoint&lt;br /&gt;
  Powerpoint powerpoint=new Powerpoint(wikiTask.getInput());&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== PDF ===&lt;br /&gt;
{| class='wikitable sortable'&lt;br /&gt;
! Logo&lt;br /&gt;
! Format&lt;br /&gt;
! Apache documentation&lt;br /&gt;
! Stackoverflow &lt;br /&gt;
! Tutorial example&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;img src='http://www.adobe.com/images/pdficon_large.png' width='64px'/&amp;gt;&lt;br /&gt;
| Portable Document Format pdf&lt;br /&gt;
| {{Link|https://pdfbox.apache.org/|title=PDF}}&lt;br /&gt;
| {{Link|target=http://stackoverflow.com/questions/tagged/pdfbox|title=pdfbox}}&lt;br /&gt;
| {{Link|target=WikiTaskTutorial/Portable Document Format}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;source lang='java' id='pdf'&amp;gt;&lt;br /&gt;
@args() {&lt;br /&gt;
  String title &lt;br /&gt;
  String logo&lt;br /&gt;
  org.sidif.wiki.WikiTask wikiTask&lt;br /&gt;
}&lt;br /&gt;
@import java.net.URL&lt;br /&gt;
@import org.apache.pdfbox.pdmodel.PDDocument&lt;br /&gt;
@import org.apache.pdfbox.pdmodel.PDPage&lt;br /&gt;
@import org.apache.pdfbox.util.PDFTextStripper&lt;br /&gt;
@{&lt;br /&gt;
 /**&lt;br /&gt;
  * Portable Document File extractor help&lt;br /&gt;
  */&lt;br /&gt;
 class PDF {&lt;br /&gt;
   public Throwable error;&lt;br /&gt;
   PDDocument doc;&lt;br /&gt;
   PDFTextStripper pdfStripper;&lt;br /&gt;
   &lt;br /&gt;
   /**&lt;br /&gt;
    * construct this PDF from the given url&lt;br /&gt;
    */&lt;br /&gt;
   public PDF(String url) {&lt;br /&gt;
     try {&lt;br /&gt;
       // might want to switch off logging here to improve performance&lt;br /&gt;
        String[] loggers = { &amp;quot;org.apache.pdfbox.util.PDFStreamEngine&amp;quot;,&lt;br /&gt;
            &amp;quot;org.apache.pdfbox.util&amp;quot;, &amp;quot;org.apache.pdfbox.util.PDFStreamEngine&amp;quot;,&lt;br /&gt;
            &amp;quot;org.apache.pdfbox.pdfparser.PDFObjectStreamParser&amp;quot;,&lt;br /&gt;
            &amp;quot;org.apache.pdfbox.cos.COSDocument&amp;quot;,&lt;br /&gt;
            &amp;quot;org.apache.pdfbox.pdmodel.font.PDSimpleFont&amp;quot;,&lt;br /&gt;
            &amp;quot;org.apache.pdfbox.pdmodel.graphics.xobject.PDPixelMap&amp;quot;,&lt;br /&gt;
            &amp;quot;org.apache.pdfbox.pdmodel.graphics.color.PDSeparation&amp;quot;,&lt;br /&gt;
            &amp;quot;org.apache.pdfbox.pdmodel.graphics.color.PDColorState&amp;quot;,&lt;br /&gt;
            &amp;quot;org.apache.pdfbox.pdmodel.graphics.color.PDICCBased&amp;quot;,&lt;br /&gt;
            &amp;quot;org.apache.pdfbox.pdfparser.PDFObjectStreamParser&amp;quot; };&lt;br /&gt;
       for (String logger : loggers) {&lt;br /&gt;
          org.apache.log4j.Logger logpdfengine = org.apache.log4j.Logger&lt;br /&gt;
              .getLogger(logger);&lt;br /&gt;
          logpdfengine.setLevel(org.apache.log4j.Level.OFF);&lt;br /&gt;
       }&lt;br /&gt;
       InputStream is = new URL(url).openStream();&lt;br /&gt;
       doc=PDDocument.load(is);&lt;br /&gt;
       pdfStripper = new PDFTextStripper();&lt;br /&gt;
     } catch(Throwable th) {&lt;br /&gt;
       error=th;&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
   public String getPageText(int page) {&lt;br /&gt;
     String result=&amp;quot;?&amp;quot;;&lt;br /&gt;
     try {&lt;br /&gt;
       pdfStripper.setStartPage(page);&lt;br /&gt;
       pdfStripper.setEndPage(page); &lt;br /&gt;
       result=pdfStripper.getText(doc);&lt;br /&gt;
     } catch(Throwable th) {&lt;br /&gt;
       error=th;&lt;br /&gt;
       result=&amp;quot;Error: &amp;quot;+th.getMessage();&lt;br /&gt;
     }&lt;br /&gt;
     return result;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 // don't create this here ... but might make tutorial examples fail&lt;br /&gt;
 // PDF pdf=new PDF(wikiTask.getInput());&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== VCard ===&lt;br /&gt;
{| class='wikitable sortable'&lt;br /&gt;
! Logo&lt;br /&gt;
! Format&lt;br /&gt;
! Documentation&lt;br /&gt;
! Stackoverflow &lt;br /&gt;
! Tutorial example&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;img src='http://www.lenashore.com/wp-content/uploads/2014/01/vc-ard.png' width='64px'/&amp;gt;&lt;br /&gt;
| VCard vcf&lt;br /&gt;
| {{Link|https://tools.ietf.org/html/rfc6350|title=VCard}}&lt;br /&gt;
| {{Link|target=http://stackoverflow.com/questions/tagged/vcard|title=vcard}}&lt;br /&gt;
| {{Link|target=WikiTaskTutorial/VCard}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;source lang='java' id='vcard'&amp;gt;&lt;br /&gt;
@args() {&lt;br /&gt;
  org.sidif.wiki.WikiTask wikiTask&lt;br /&gt;
}&lt;br /&gt;
@import java.net.URL&lt;br /&gt;
@import ezvcard.Ezvcard&lt;br /&gt;
@import ezvcard.VCard&lt;br /&gt;
@import ezvcard.property.Email&lt;br /&gt;
@import ezvcard.property.Address&lt;br /&gt;
@import ezvcard.property.Title&lt;br /&gt;
@import ezvcard.property.Telephone&lt;br /&gt;
@import ezvcard.property.Note&lt;br /&gt;
@{ &lt;br /&gt;
  /**&lt;br /&gt;
   * holder for a VCard&lt;br /&gt;
   */&lt;br /&gt;
  class VCardHolder {&lt;br /&gt;
    String text;&lt;br /&gt;
    Throwable error;&lt;br /&gt;
    VCard vcard;&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * construct a VCard from the given url&lt;br /&gt;
     */&lt;br /&gt;
    public VCardHolder(String url) {&lt;br /&gt;
      try {&lt;br /&gt;
        InputStream is = new URL(url).openStream();&lt;br /&gt;
        text=org.apache.commons.io.IOUtils.toString(is, &amp;quot;UTF-8&amp;quot;);&lt;br /&gt;
        vcard = Ezvcard.parse(text).first();&lt;br /&gt;
      } catch (Throwable th) { &lt;br /&gt;
        error=th;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  VCardHolder vcardHolder=new VCardHolder(wikiTask.getInput());&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
@def vcardAddressAsTableRow(Address address) {&lt;br /&gt;
!@(address.getTypes().toArray()[0]) address&lt;br /&gt;
|@address.getStreetAddress()&amp;lt;br&amp;gt;@address.getPostalCode() @address.getLocality()&amp;lt;br&amp;gt;@address.getCountry()&lt;br /&gt;
|-&lt;br /&gt;
}&lt;br /&gt;
@def vcardPhoneAsTableRow(Telephone phone) {&lt;br /&gt;
!@if (phone.getTypes().size()&amp;gt;0) { @phone.getTypes().toArray()[0] } phone&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;@phone.getText()&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
}&lt;br /&gt;
@def vcardNoteAsTableRow(Note note) {&lt;br /&gt;
!note&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;@note.getValue()&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
}&lt;br /&gt;
@def vcardTitleAsTableRow(Title title) {&lt;br /&gt;
! @if (title.getType()) { @title.getType() } title&lt;br /&gt;
|@title.getValue()&lt;br /&gt;
|-&lt;br /&gt;
}&lt;br /&gt;
@def vcardAsTable(VCard vcard) {&lt;br /&gt;
@(&amp;quot;{|&amp;quot;) class='wikitable sortable'&lt;br /&gt;
!fullname:&lt;br /&gt;
|@vcard.getFormattedName().getValue()&lt;br /&gt;
|-&lt;br /&gt;
@for (Title title:vcard.getTitles()) {&lt;br /&gt;
@vcardTitleAsTableRow(title);&lt;br /&gt;
}	&lt;br /&gt;
!firstname:&lt;br /&gt;
|@vcard.getStructuredName().getGiven()&lt;br /&gt;
|-&lt;br /&gt;
!lastname:&lt;br /&gt;
|@vcard.getStructuredName().getFamily()&lt;br /&gt;
|-&lt;br /&gt;
!organization:&lt;br /&gt;
|@if (vcard.getOrganization()) { @vcard.getOrganization().getValues().get(0) }&lt;br /&gt;
|-&lt;br /&gt;
@for (Address address:vcard.getAddresses()) {&lt;br /&gt;
@vcardAddressAsTableRow(address)&lt;br /&gt;
}		&lt;br /&gt;
@for (Email email : vcard.getEmails()){&lt;br /&gt;
!email:&lt;br /&gt;
|@email.getValue()&lt;br /&gt;
|-&lt;br /&gt;
}&lt;br /&gt;
@for (Telephone phone : vcard.getTelephoneNumbers()) {&lt;br /&gt;
@vcardPhoneAsTableRow(phone)&lt;br /&gt;
}&lt;br /&gt;
@for (Note note : vcard.getNotes()) {&lt;br /&gt;
@vcardNoteAsTableRow(note)&lt;br /&gt;
}&lt;br /&gt;
@(&amp;quot;|}&amp;quot;)&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wf</name></author>
	</entry>
</feed>