poi-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bengt Rodehav <be...@rodehav.com>
Subject Re: showInPane does not work
Date Mon, 05 Oct 2015 12:09:06 GMT
Thanks a lot for your effort!

Yes, what you've found out does agree with the testing I've done. I've also
wondered why there is no setter for the topLeftCell which I also thought
would be what is required in this case.

Thanks for your help,

/Bengt


2015-10-03 16:02 GMT+02:00 Mark Beardsley <markbrdsly@tiscali.co.uk>:

> Now for the bad news; currently, the api does not provide the necessary
> interface to set the value within the xml markup for the workbook to
> control
> the view in the way you require.
>
> During today, I have had the opportunity to dig around and experiment with
> some code. By looking at the raw xml markup, I have found that it is the
> sheetView element and more specifically the topLeftCell attribute that
> influences the workbooks behaviour in the way you require. To test this, I
> created a workbook with a few sheets that had lots of rows and cells
> populated. Using LibreOffice Calc, I opened the workbook and scrolled away
> down the sheets selecting a cell at random before saving the workbook away
> again. Unzipping the xml, I saw a few settings that could be changed and
> did
> so in sequence, rezipping the xml markup and opening it again with Calc. If
> I set the value of the topLeftCell attribute to A!, then the sheet would be
> opened with that cell in the top left hand corner of the display, just as
> you wanted. This did not make the cell active, nor give it focus, only made
> sure it was displayed at the top left hand corner of the sheet.
>
> It is possible to get at the address of this cell using the api. Two
> methods
> are defined on the XSSFSheet class - getTopRow() and getLeftCol() - but
> there are no corresponding setters for these values. In addition, the sheet
> view object is declared as private within the class and I cannot see a
> quick
> and easy way to get at it yet. I may well be able to do so but until then,
> I
> am afraid your quest will have to be placed on hold.
>
> Just for the sake of completeness, setActiveCell() will work but it does
> not
> cause the cell to be scrolled into view. In like manner, showInPane() will
> work but only if employed with the locking I described earlier. Called
> either separately or together they will not have the effect you desire,
> sorry. I suspect that only by setting the value of the topLeftCell()
> attribute of the sheetView element will we accomplish this. I have the time
> to dig around more this weekend and will let you know if I can make any
> progress. Hopefully, I will be able to do something without needing to
> patch
> the api.
>
>
>
> --
> View this message in context:
> http://apache-poi.1045710.n5.nabble.com/showInPane-does-not-work-tp5720321p5720431.html
> Sent from the POI - User mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@poi.apache.org
> For additional commands, e-mail: user-help@poi.apache.org
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message