<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:宋体;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:宋体;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:"\@宋体";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        text-align:justify;
        text-justify:inter-ideograph;
        font-size:10.5pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin:0cm;
        margin-bottom:.0001pt;
        text-align:justify;
        text-justify:inter-ideograph;
        text-indent:21.0pt;
        font-size:10.5pt;
        font-family:"Calibri","sans-serif";}
span.EmailStyle18
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:1391346686;
        mso-list-type:hybrid;
        mso-list-template-ids:-2031465426 1842123298 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:18.0pt;
        text-indent:-18.0pt;}
@list l0:level2
        {mso-level-number-format:alpha-lower;
        mso-level-text:"%2\)";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:42.0pt;
        text-indent:-21.0pt;}
@list l0:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:63.0pt;
        text-indent:-21.0pt;}
@list l0:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:84.0pt;
        text-indent:-21.0pt;}
@list l0:level5
        {mso-level-number-format:alpha-lower;
        mso-level-text:"%5\)";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:105.0pt;
        text-indent:-21.0pt;}
@list l0:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:126.0pt;
        text-indent:-21.0pt;}
@list l0:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:147.0pt;
        text-indent:-21.0pt;}
@list l0:level8
        {mso-level-number-format:alpha-lower;
        mso-level-text:"%8\)";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:168.0pt;
        text-indent:-21.0pt;}
@list l0:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:189.0pt;
        text-indent:-21.0pt;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="ZH-CN" link="blue" vlink="purple" style="text-justify-trim:punctuation">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D">Hi Team members,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D">Does anyone know how to do it as the subject describes?  Thanks a lot!<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D">LibreOffice version: 4.1.4.2<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D">OS:RedHat7<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D">Java1.7<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D">My code is as follow:<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:10.5pt;mso-para-margin-left:1.0gd"><span lang="EN-US" style="font-size:9.0pt;color:#1F497D;background:aqua;mso-highlight:aqua">XComponentContext xContext = OOoConnector.bootstrap(ooExeFolder);<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:10.5pt;mso-para-margin-left:1.0gd"><span lang="EN-US" style="font-size:9.0pt;color:#1F497D;background:aqua;mso-highlight:aqua">XMultiComponentFactory xMCF = xContext.getServiceManager();<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:10.5pt;mso-para-margin-left:1.0gd"><span lang="EN-US" style="font-size:9.0pt;color:#1F497D;background:aqua;mso-highlight:aqua">Object desktop = xMCF.createInstanceWithContext("com.sun.star.frame.Desktop", xContext);<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:10.5pt;mso-para-margin-left:1.0gd"><span lang="EN-US" style="font-size:9.0pt;color:#1F497D;background:aqua;mso-highlight:aqua">XComponentLoader loader = (XComponentLoader)UnoRuntime.queryInterface(XComponentLoader.class,
 desktop);<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:10.5pt;mso-para-margin-left:1.0gd"><span lang="EN-US" style="font-size:9.0pt;color:#1F497D;background:aqua;mso-highlight:aqua">String url = "file://" + targetFile;<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:10.5pt;mso-para-margin-left:1.0gd"><b><span lang="EN-US" style="font-size:9.0pt;color:red">// If execute the next line, the related file will be opened automatically, but we do not want to open it. What we want is change
 value for some cells and work as background.</span></b><b><span lang="EN-US" style="font-size:9.0pt;color:#1F497D;background:aqua;mso-highlight:aqua"><o:p></o:p></span></b></p>
<p class="MsoNormal" style="margin-left:10.5pt;mso-para-margin-left:1.0gd"><b><span lang="EN-US" style="font-size:9.0pt;color:#1F497D;background:aqua;mso-highlight:aqua">XComponent component = loader.loadComponentFromURL(url, "_default", 0, new PropertyValue[0]);</span></b><b><span lang="EN-US" style="font-size:9.0pt;color:#1F497D">
<o:p></o:p></span></b></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D">    ……<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D">The default options for the ‘soffice’ command is as follow.<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:10.5pt;mso-para-margin-left:1.0gd"><span lang="EN-US" style="font-size:9.0pt;color:#1F497D;background:aqua;mso-highlight:aqua">ArrayList<String> options = new ArrayList<String>();<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:10.5pt;mso-para-margin-left:1.0gd"><span lang="EN-US" style="font-size:9.0pt;color:#1F497D;background:aqua;mso-highlight:aqua">options.add("--nologo");<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:10.5pt;mso-para-margin-left:1.0gd"><span lang="EN-US" style="font-size:9.0pt;color:#1F497D;background:aqua;mso-highlight:aqua">options.add("--nodefault");<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:10.5pt;mso-para-margin-left:1.0gd"><span lang="EN-US" style="font-size:9.0pt;color:#1F497D;background:aqua;mso-highlight:aqua">options.add("--norestore");<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:10.5pt;mso-para-margin-left:1.0gd"><span lang="EN-US" style="font-size:9.0pt;color:#1F497D;background:aqua;mso-highlight:aqua">options.add("--nocrashreport");<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:10.5pt;mso-para-margin-left:1.0gd"><span lang="EN-US" style="font-size:9.0pt;color:#1F497D;background:aqua;mso-highlight:aqua">options.add("--nolockcheck");<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:10.5pt;mso-para-margin-left:1.0gd"><span lang="EN-US" style="font-size:9.0pt;color:#1F497D;background:aqua;mso-highlight:aqua">…….<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D">Anyone who knows the solution is much appreciated!<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D">Best Regards<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D">William<o:p></o:p></span></p>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal" align="left" style="text-align:left"><b><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Zhang, William
<br>
<b>Sent:</b> 2015</span><span style="font-size:10.0pt;font-family:宋体">年</span><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">12</span><span style="font-size:10.0pt;font-family:宋体">月</span><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">25</span><span style="font-size:10.0pt;font-family:宋体">日</span><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">
 13:08<br>
<b>To:</b> 'libreoffice@lists.freedesktop.org'<br>
<b>Subject:</b> How to decrypt ods file<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal" align="left" style="text-align:left"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Hi Team members,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Does anyone know how to decrypt an encrypted Libreoffice Calc file with Java or other languages? Or even some workarounds. Thanks a lot!<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">LibreOffice version: 4.1.4.2<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">What I’ve tried.<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left:18.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo2">
<![if !supportLists]><span lang="EN-US"><span style="mso-list:Ignore">1.<span style="font:7.0pt "Times New Roman"">      
</span></span></span><![endif]><span lang="EN-US">Try some common decrypt API such as javax.crypto.Cipher, failed.<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left:18.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo2">
<![if !supportLists]><span lang="EN-US"><span style="mso-list:Ignore">2.<span style="font:7.0pt "Times New Roman"">      
</span></span></span><![endif]><span lang="EN-US">Change the ‘ods’ extension to ‘zip’, unzip it and try to parse file to get the content, failed.
<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left:18.0pt;text-indent:0cm"><span lang="EN-US">Then try to get xml content with Java IO, failed.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">……<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Best Regards<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">William<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
</div>
</body>
</html>