Support for reading HSSF column styles
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@732112 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
ec521065e2
commit
ea421dab2b
@ -37,6 +37,7 @@
|
|||||||
|
|
||||||
<!-- Don't forget to update status.xml too! -->
|
<!-- Don't forget to update status.xml too! -->
|
||||||
<release version="3.5-beta5" date="2008-??-??">
|
<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">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">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>
|
<action dev="POI-DEVELOPERS" type="fix">46479 - fixed bugs related to cached formula values and HSSFFormulaEvaluator.evaluateInCell()</action>
|
||||||
|
@ -34,6 +34,7 @@
|
|||||||
<!-- Don't forget to update changes.xml too! -->
|
<!-- Don't forget to update changes.xml too! -->
|
||||||
<changes>
|
<changes>
|
||||||
<release version="3.5-beta5" date="2008-??-??">
|
<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">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">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>
|
<action dev="POI-DEVELOPERS" type="fix">46479 - fixed bugs related to cached formula values and HSSFFormulaEvaluator.evaluateInCell()</action>
|
||||||
|
@ -36,6 +36,7 @@ import org.apache.poi.hssf.model.Workbook;
|
|||||||
import org.apache.poi.hssf.record.CellValueRecordInterface;
|
import org.apache.poi.hssf.record.CellValueRecordInterface;
|
||||||
import org.apache.poi.hssf.record.DVRecord;
|
import org.apache.poi.hssf.record.DVRecord;
|
||||||
import org.apache.poi.hssf.record.EscherAggregate;
|
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.Record;
|
||||||
import org.apache.poi.hssf.record.RowRecord;
|
import org.apache.poi.hssf.record.RowRecord;
|
||||||
import org.apache.poi.hssf.record.SCLRecord;
|
import org.apache.poi.hssf.record.SCLRecord;
|
||||||
@ -503,6 +504,23 @@ public final class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet {
|
|||||||
sheet.setDefaultRowHeight((short) (height * 20));
|
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.
|
* get whether gridlines are printed.
|
||||||
* @return true if printed
|
* @return true if printed
|
||||||
|
@ -178,6 +178,19 @@ public interface Sheet extends Iterable<Row> {
|
|||||||
*/
|
*/
|
||||||
void setDefaultRowHeightInPoints(float 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)
|
* Adds a merged region of cells (hence those cells form one)
|
||||||
*
|
*
|
||||||
|
@ -501,6 +501,17 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
|
|||||||
worksheet.addNewSheetFormatPr();
|
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,
|
* Get whether to display the guts or not,
|
||||||
* default value is true
|
* default value is true
|
||||||
|
BIN
src/testcases/org/apache/poi/hssf/data/ColumnStyle1dp.xls
Executable file
BIN
src/testcases/org/apache/poi/hssf/data/ColumnStyle1dp.xls
Executable file
Binary file not shown.
BIN
src/testcases/org/apache/poi/hssf/data/ColumnStyle1dpColoured.xls
Executable file
BIN
src/testcases/org/apache/poi/hssf/data/ColumnStyle1dpColoured.xls
Executable file
Binary file not shown.
BIN
src/testcases/org/apache/poi/hssf/data/ColumnStyleNone.xls
Executable file
BIN
src/testcases/org/apache/poi/hssf/data/ColumnStyleNone.xls
Executable file
Binary file not shown.
@ -911,4 +911,43 @@ public final class TestHSSFSheet extends TestCase {
|
|||||||
}
|
}
|
||||||
wb.createSheet(SAME_PREFIX + "Exxxx"); // OK - differs in the 31st char
|
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());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user