Pārlūkot izejas kodu

Support for reading HSSF column styles

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@732112 13f79535-47bb-0310-9956-ffa450edef68
tags/REL_3_5_BETA5
Nick Burch pirms 15 gadiem
vecāks
revīzija
5d1f44e314

+ 1
- 0
src/documentation/content/xdocs/changes.xml Parādīt failu

@@ -37,6 +37,7 @@

<!-- Don't forget to update status.xml too! -->
<release version="3.5-beta5" date="2008-??-??">
<action dev="POI-DEVELOPERS" type="add">Support for reading HSSF column styles</action>
<action dev="POI-DEVELOPERS" type="fix">Hook up POIXMLTextExtractor.getMetadataTextExtractor() to the already written POIXMLPropertiesTextExtractor</action>
<action dev="POI-DEVELOPERS" type="fix">46472 - Avoid NPE in HPSFPropertiesExtractor when no properties exist</action>
<action dev="POI-DEVELOPERS" type="fix">46479 - fixed bugs related to cached formula values and HSSFFormulaEvaluator.evaluateInCell()</action>

+ 1
- 0
src/documentation/content/xdocs/status.xml Parādīt failu

@@ -34,6 +34,7 @@
<!-- Don't forget to update changes.xml too! -->
<changes>
<release version="3.5-beta5" date="2008-??-??">
<action dev="POI-DEVELOPERS" type="add">Support for reading HSSF column styles</action>
<action dev="POI-DEVELOPERS" type="fix">Hook up POIXMLTextExtractor.getMetadataTextExtractor() to the already written POIXMLPropertiesTextExtractor</action>
<action dev="POI-DEVELOPERS" type="fix">46472 - Avoid NPE in HPSFPropertiesExtractor when no properties exist</action>
<action dev="POI-DEVELOPERS" type="fix">46479 - fixed bugs related to cached formula values and HSSFFormulaEvaluator.evaluateInCell()</action>

+ 18
- 0
src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java Parādīt failu

@@ -36,6 +36,7 @@ import org.apache.poi.hssf.model.Workbook;
import org.apache.poi.hssf.record.CellValueRecordInterface;
import org.apache.poi.hssf.record.DVRecord;
import org.apache.poi.hssf.record.EscherAggregate;
import org.apache.poi.hssf.record.ExtendedFormatRecord;
import org.apache.poi.hssf.record.Record;
import org.apache.poi.hssf.record.RowRecord;
import org.apache.poi.hssf.record.SCLRecord;
@@ -502,6 +503,23 @@ public final class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet {
{
sheet.setDefaultRowHeight((short) (height * 20));
}
/**
* Returns the HSSFCellStyle that applies to the given
* (0 based) column, or null if no style has been
* set for that column
*/
public HSSFCellStyle getColumnStyle(int column) {
short styleIndex = sheet.getXFIndexForColAt((short)column);
if(styleIndex == 0xf) {
// None set
return null;
}
ExtendedFormatRecord xf = book.getExFormatAt(styleIndex);
return new HSSFCellStyle(styleIndex, xf, book);
}

/**
* get whether gridlines are printed.

+ 13
- 0
src/ooxml/interfaces-jdk15/org/apache/poi/ss/usermodel/Sheet.java Parādīt failu

@@ -177,6 +177,19 @@ public interface Sheet extends Iterable<Row> {
* @param height default row height
*/
void setDefaultRowHeightInPoints(float height);
/**
* Returns the CellStyle that applies to the given
* (0 based) column, or null if no style has been
* set for that column
*/
public CellStyle getColumnStyle(int column);

/**
* Sets the CellStyle that applies to the given
* (0 based) column.
*/
// public CellStyle setColumnStyle(int column, CellStyle style);

/**
* Adds a merged region of cells (hence those cells form one)

+ 11
- 0
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java Parādīt failu

@@ -500,6 +500,17 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
worksheet.getSheetFormatPr() :
worksheet.addNewSheetFormatPr();
}
/**
* Returns the CellStyle that applies to the given
* (0 based) column, or null if no style has been
* set for that column
*/
public CellStyle getColumnStyle(int column) {
// TODO
return null;
}


/**
* Get whether to display the guts or not,

Binārs
src/testcases/org/apache/poi/hssf/data/ColumnStyle1dp.xls Parādīt failu


Binārs
src/testcases/org/apache/poi/hssf/data/ColumnStyle1dpColoured.xls Parādīt failu


Binārs
src/testcases/org/apache/poi/hssf/data/ColumnStyleNone.xls Parādīt failu


+ 39
- 0
src/testcases/org/apache/poi/hssf/usermodel/TestHSSFSheet.java Parādīt failu

@@ -911,4 +911,43 @@ public final class TestHSSFSheet extends TestCase {
}
wb.createSheet(SAME_PREFIX + "Exxxx"); // OK - differs in the 31st char
}
/**
* Tests that we can read existing column styles
*/
public void testReadColumnStyles() {
HSSFWorkbook wbNone = HSSFTestDataSamples.openSampleWorkbook("ColumnStyleNone.xls");
HSSFWorkbook wbSimple = HSSFTestDataSamples.openSampleWorkbook("ColumnStyle1dp.xls");
HSSFWorkbook wbComplex = HSSFTestDataSamples.openSampleWorkbook("ColumnStyle1dpColoured.xls");
// Presence / absence checks
assertNull(wbNone.getSheetAt(0).getColumnStyle(0));
assertNull(wbNone.getSheetAt(0).getColumnStyle(1));
assertNull(wbSimple.getSheetAt(0).getColumnStyle(0));
assertNotNull(wbSimple.getSheetAt(0).getColumnStyle(1));
assertNull(wbComplex.getSheetAt(0).getColumnStyle(0));
assertNotNull(wbComplex.getSheetAt(0).getColumnStyle(1));
// Details checks
HSSFCellStyle bs = wbSimple.getSheetAt(0).getColumnStyle(1);
assertEquals(62, bs.getIndex());
assertEquals("#,##0.0_ ;\\-#,##0.0\\ ", bs.getDataFormatString());
assertEquals("Calibri", bs.getFont(wbSimple).getFontName());
assertEquals(11*20, bs.getFont(wbSimple).getFontHeight());
assertEquals(8, bs.getFont(wbSimple).getColor());
assertFalse(bs.getFont(wbSimple).getItalic());
assertEquals(HSSFFont.BOLDWEIGHT_NORMAL, bs.getFont(wbSimple).getBoldweight());
HSSFCellStyle cs = wbComplex.getSheetAt(0).getColumnStyle(1);
assertEquals(62, cs.getIndex());
assertEquals("#,##0.0_ ;\\-#,##0.0\\ ", cs.getDataFormatString());
assertEquals("Arial", cs.getFont(wbComplex).getFontName());
assertEquals(8*20, cs.getFont(wbComplex).getFontHeight());
assertEquals(10, cs.getFont(wbComplex).getColor());
assertFalse(cs.getFont(wbComplex).getItalic());
assertEquals(HSSFFont.BOLDWEIGHT_BOLD, cs.getFont(wbComplex).getBoldweight());
}
}

Notiek ielāde…
Atcelt
Saglabāt