From 1b451b3e8ad655f4837700a55ebebd53e419e86a Mon Sep 17 00:00:00 2001 From: Jason Height Date: Mon, 28 Aug 2006 04:44:32 +0000 Subject: [PATCH] Bug 33736: Applied patch for Column Hiding. Thanks git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@437526 13f79535-47bb-0310-9956-ffa450edef68 --- src/java/org/apache/poi/hssf/model/Sheet.java | 45 +++++++++++++++++++ .../apache/poi/hssf/usermodel/HSSFSheet.java | 23 ++++++++++ 2 files changed, 68 insertions(+) diff --git a/src/java/org/apache/poi/hssf/model/Sheet.java b/src/java/org/apache/poi/hssf/model/Sheet.java index 1ee2bb8fd..01b78771a 100644 --- a/src/java/org/apache/poi/hssf/model/Sheet.java +++ b/src/java/org/apache/poi/hssf/model/Sheet.java @@ -47,6 +47,7 @@ import java.util.List; // normally I don't do this, buy we literally mean ALL * @author Shawn Laubach (slaubach at apache dot org) Gridlines, Headers, Footers, PrintSetup, and Setting Default Column Styles * @author Jason Height (jheight at chariot dot net dot au) Clone support. DBCell & Index Record writing support * @author Brian Sanders (kestrel at burdell dot org) Active Cell support + * @author Jean-Pierre Paris (jean-pierre.paris at m4x dot org) (Just a little) * * @see org.apache.poi.hssf.model.Workbook * @see org.apache.poi.hssf.usermodel.HSSFSheet @@ -1843,6 +1844,50 @@ public class Sheet implements Model setColumn( column, new Short(width), null, null, null); } + /** + * Get the hidden property for a given column. + * @param column index + * @see org.apache.poi.hssf.record.DefaultColWidthRecord + * @see org.apache.poi.hssf.record.ColumnInfoRecord + * @see #setColumnHidden(short,boolean) + * @return whether the column is hidden or not. + */ + + public boolean isColumnHidden(short column) + { + boolean retval = false; + ColumnInfoRecord ci = null; + + if (columns != null) + { + for ( Iterator iterator = columns.getIterator(); iterator.hasNext(); ) + { + ci = ( ColumnInfoRecord ) iterator.next(); + if ((ci.getFirstColumn() <= column) + && (column <= ci.getLastColumn())) + { + break; + } + ci = null; + } + } + if (ci != null) + { + retval = ci.getHidden(); + } + return retval; + } + + /** + * Get the hidden property for a given column. + * @param column - the column number + * @param hidden - whether the column is hidden or not + */ + public void setColumnHidden(short column, boolean hidden) + { + setColumn( column, null, null, new Boolean(hidden), null); + } + public void setColumn(short column, Short width, Integer level, Boolean hidden, Boolean collapsed) { if (columns == null) diff --git a/src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java b/src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java index fa207870f..c7befce1b 100644 --- a/src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java +++ b/src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java @@ -41,6 +41,7 @@ import java.util.TreeMap; * @author Glen Stampoultzis (glens at apache.org) * @author Libin Roman (romal at vistaportal.com) * @author Shawn Laubach (slaubach at apache dot org) (Just a little) + * @author Jean-Pierre Paris (jean-pierre.paris at m4x dot org) (Just a little, too) */ public class HSSFSheet @@ -339,6 +340,28 @@ public class HSSFSheet return lastrow; } + /** + * Get the visibility state for a given column. + * @param column - the column to get (0-based) + * @param width - the visiblity state of the column + */ + + public void setColumnHidden(short column, boolean hidden) + { + sheet.setColumnHidden(column, hidden); + } + + /** + * Get the hidden state for a given column. + * @param column - the column to set (0-based) + * @return hidden - the visiblity state of the column + */ + + public boolean isColumnHidden(short column) + { + return sheet.isColumnHidden(column); + } + /** * set the width (in units of 1/256th of a character width) * @param column - the column to set (0-based)