2017-08-09 25 views
1

OpenOfficeでは、スクロール中に固定されるように一番上の行をフリーズすることができます。 .odsファイルから抽出したXMLでこの情報にアクセスしたいと思います。OpenOffice XML:固定行はどのように格納されますか?

私が最初に仮定したのは、フォーマット指定の行に沿って、table:table-header-rowsが固定行の要素になるということでした。しかし、そうではありません。

OO WebページとECMA仕様の仕様を検討したところ、この事実がOOによって格納されている可能性のある情報は見つかりませんでした。誰も私を助けるかもしれない考えを持っていますか?


edit1:行をフリーズする前後で、content.xmlのdiffを実行したかったのです。興味深いことに、私が行う唯一のことが行を凍結している場合、私は保存することはできません - それは凍結がストアに値する変更または変更とはみなされないようです。空のセルでDelを押すだけで保存できます。これらのファイルを比較すると違いはありません。


(注意点として:私はOOのXML-devメーリングリストを見ていると思ったが、悲しいことにOOのWebページ上のリンクが古くなっている)この情報はからのsettings.xmlに保存されている

答えて

1

ODSファイル関連する設定項目名はVerticalSplitMode,VerticalSplitPositionPositionBottomと思われます。それらはhttps://wiki.oasis-open.org/office/Spreadsheet_View_Dataにリストされています。

次の値は、最初の行をフリーズします。

<config:config-item config:name="VerticalSplitMode" config:type="short">2</config:config-item> 
<config:config-item config:name="VerticalSplitPosition" config:type="int">1</config:config-item> 
<config:config-item config:name="PositionBottom" config:type="int">1</config:config-item> 

関連コードはhttps://groups.google.com/forum/#!topic/jopendocument/YjySTc9zcCQのExample.javaに由来します。しかし、おそらくOpenOfficeの最近のバージョンの変更のために正しく動作していないようです。

final Element splitMode = (Element) spread.getXPath("./config:config-item[@config:name='VerticalSplitMode']").selectSingleNode(sheetSettings); 
// 0 to disable 
splitMode.setText("1"); 
final Element splitPos = (Element) spread.getXPath("./config:config-item[@config:name='VerticalSplitPosition']").selectSingleNode(sheetSettings); 
// height in pixels 
splitPos.setText("64"); 
関連する問題