Sorry but I am not too sure what you are asking for. Are you asking whether
it is possible to discover the size of a merged region of cells? If so, then
the answer is yes, as the CellRangeAdress class conatins methods to tel you
the first row and column in the merged region and the last row and column.
That gives you, in effect, the cell co-ordinates of the regions top left and
bottom right hand corners (getFirstColumn(), getFirstRow(), getLastColumn()
and getLastRow()). Using those numbers, you can calculate the number of
columns, rows and even cells - though there is also a getNumberOfCells()
method you could call to get this figure - the merged region occupies.

Yours

Mark B


pb2208 wrote:
> 
> Sorry, I was looking at the wrong class and the row/column indexes were
> bad.  Everthng is working.
> 
> Is there a way to determine if the merge columns versus rows?   And if so,
> how to determine the number of cells involved?
> 
> 
> 
> MSB wrote:
>> 
>> Are you looking at the correct class? The one I referred to is the
>> org.apache.poi.ss.util.CellRangeAddress class. It extends the
>> CellRangeAddressBase class and inherits the isInRange(int, int) method
>> from that.
>> 
>> With regard to making the comparison, all you need to do is pass the row
>> and column numbers of the cell to the isInRange() method for a
>> CellRangeAddress object you have recovered from the array. You may know
>> the address of the cell - depending on the code you are using to recover
>> cells from your worksheets - but if not can recover it by calling the
>> getRowIndex() and getColumnIndex() method on the cell object.
>> 
>> Yours
>> 
>> Mark B
>> 
>> 
>> pb2208 wrote:
>>> 
>>> Interestng.  The documentation appears to indicate that
>>> "CellRangeAddress" object is depricated.
>>> http://poi.apache.org/apidocs/org/apache/poi/hssf/util/CellRangeAddress.html
>>> 
>>> I have written the code and have a question on the "isInRange" method. 
>>> Where is it defined and how can it compare the values in the array?
>>> 
>>> 
>>> MSB wrote:
>>>> 
>>>> I do not have the code to hand but the technique that I have used in
>>>> the past goes like this.
>>>> 
>>>> Open the worksheet.
>>>> Call the getNumMergedRegions() methods to recover an integer that
>>>> indicates how manymerged regions there are on the sheet.
>>>> Use this value to create and dimension an array of type
>>>> CellRangeAddress.
>>>> Use this value again to iterate through all of the merged regions - use
>>>> a for() loop - calling the getMergedRegion(int) method and storing the
>>>> returned CellRangeAdress object into the array.
>>>> 
>>>> Now when you encounter a cell, you can iterate through the objects in
>>>> the cell range address array and call the isInGange(int, int) method
>>>> passing the row and column indeices of the cell. That will return a
>>>> boolean value indicating whether or not the cell is contained within
>>>> the range.
>>>> 
>>>> Yours
>>>> 
>>>> Mark B
>>>> 
>>>> 
>>>> pb2208 wrote:
>>>>> 
>>>>> I am parsing a spreadsheet and need to skip processing for an merged
>>>>> cells.  How can i test a cell to see if it is part of merged set of
>>>>> cells?
>>>>> 
>>>> 
>>>> 
>>> 
>>> 
>> 
>> 
> 
> 

-- 
View this message in context: 
http://old.nabble.com/Testing-for-Merged-cells-tp28811936p28831620.html
Sent from the POI - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@poi.apache.org
For additional commands, e-mail: user-h...@poi.apache.org

Reply via email to