From c891006d5e40a015710b3d6f2d62e0a0f656c90f Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Thu, 28 Jul 2011 22:53:46 +0000 Subject: [PATCH] Based on Yegor's investigating, Support isRightToLeft and setRightToLeft on the common spreadsheet Sheet interface, as per existing HSSF support git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1152031 13f79535-47bb-0310-9956-ffa450edef68 --- src/documentation/content/xdocs/status.xml | 1 + .../org/apache/poi/ss/usermodel/Sheet.java | 14 ++++++++++++ .../apache/poi/xssf/streaming/SXSSFSheet.java | 20 +++++++++++++++++ .../apache/poi/xssf/usermodel/XSSFSheet.java | 22 ++++++++++++++++++- 4 files changed, 56 insertions(+), 1 deletion(-) diff --git a/src/documentation/content/xdocs/status.xml b/src/documentation/content/xdocs/status.xml index deb1511a0..510e67e84 100644 --- a/src/documentation/content/xdocs/status.xml +++ b/src/documentation/content/xdocs/status.xml @@ -34,6 +34,7 @@ + Support isRightToLeft and setRightToLeft on the common spreadsheet Sheet interface, as per existing HSSF support 50209 - Fixed evaluation of Subtotals to ignore nested subtotals 44431 - HWPFDocument.write destroys fields 50401 - fixed EscherProperty to return property name instead of 'unknown' for complex properties diff --git a/src/java/org/apache/poi/ss/usermodel/Sheet.java b/src/java/org/apache/poi/ss/usermodel/Sheet.java index b7c145c26..b68f0fdd7 100644 --- a/src/java/org/apache/poi/ss/usermodel/Sheet.java +++ b/src/java/org/apache/poi/ss/usermodel/Sheet.java @@ -116,6 +116,20 @@ public interface Sheet extends Iterable { */ boolean isColumnHidden(int columnIndex); + /** + * Sets whether the worksheet is displayed from right to left instead of from left to right. + * + * @param value true for right to left, false otherwise. + */ + public void setRightToLeft(boolean value); + + /** + * Whether the text is displayed in right-to-left mode in the window + * + * @return whether the text is displayed in right-to-left mode in the window + */ + public boolean isRightToLeft(); + /** * Set the width (in units of 1/256th of a character width) * diff --git a/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFSheet.java b/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFSheet.java index c31e2fa22..e8e000b4e 100644 --- a/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFSheet.java +++ b/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFSheet.java @@ -431,6 +431,26 @@ public class SXSSFSheet implements Sheet, Cloneable { return _sh.isDisplayZeros(); } + + /** + * Sets whether the worksheet is displayed from right to left instead of from left to right. + * + * @param value true for right to left, false otherwise. + */ + public void setRightToLeft(boolean value) + { + _sh.setRightToLeft(value); + } + + /** + * Whether the text is displayed in right-to-left mode in the window + * + * @return whether the text is displayed in right-to-left mode in the window + */ + public boolean isRightToLeft() + { + return _sh.isRightToLeft(); + } /** * Flag indicating whether the Fit to Page print option is enabled. diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java index 24cd2ba24..281f77349 100644 --- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java +++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java @@ -46,7 +46,6 @@ import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.DataValidation; import org.apache.poi.ss.usermodel.DataValidationHelper; import org.apache.poi.ss.usermodel.Footer; -import org.apache.poi.ss.usermodel.FormulaEvaluator; import org.apache.poi.ss.usermodel.Header; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; @@ -713,6 +712,27 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet { return getWorkbook().getCellStyleAt((short)(idx == -1 ? 0 : idx)); } + /** + * Sets whether the worksheet is displayed from right to left instead of from left to right. + * + * @param value true for right to left, false otherwise. + */ + public void setRightToLeft(boolean value) + { + CTSheetView view = getDefaultSheetView(); + view.setRightToLeft(value); + } + + /** + * Whether the text is displayed in right-to-left mode in the window + * + * @return whether the text is displayed in right-to-left mode in the window + */ + public boolean isRightToLeft() + { + CTSheetView view = getDefaultSheetView(); + return view == null ? false : view.getRightToLeft(); + } /** * Get whether to display the guts or not,