Difference between revisions of "Documentation/DevGuide/Spreadsheets/Saving Spreadsheet Documents"

From Apache OpenOffice Wiki
Jump to: navigation, search
m (FINAL VERSION FOR L10N)
m
 
(2 intermediate revisions by the same user not shown)
Line 11: Line 11:
 
<!--<idltopic>com.sun.star.frame.XStorable</idltopic>-->
 
<!--<idltopic>com.sun.star.frame.XStorable</idltopic>-->
 
Documents are storable through their interface <idl>com.sun.star.frame.XStorable</idl>. This interface is discussed in detail in [[Documentation/DevGuide/OfficeDev/Office Development|Office Development]]. An <code>XStorable</code> implements these operations:
 
Documents are storable through their interface <idl>com.sun.star.frame.XStorable</idl>. This interface is discussed in detail in [[Documentation/DevGuide/OfficeDev/Office Development|Office Development]]. An <code>XStorable</code> implements these operations:
 
+
<syntaxhighlight lang="idl">
 
   boolean hasLocation()
 
   boolean hasLocation()
 
   string getLocation()
 
   string getLocation()
Line 18: Line 18:
 
   void storeAsURL([in] string aURL, [in] sequence< com::sun::star::beans::PropertyValue > aArgs)
 
   void storeAsURL([in] string aURL, [in] sequence< com::sun::star::beans::PropertyValue > aArgs)
 
   void storeToURL([in] string aURL, [in] sequence< com::sun::star::beans::PropertyValue > aArgs)
 
   void storeToURL([in] string aURL, [in] sequence< com::sun::star::beans::PropertyValue > aArgs)
 +
</syntaxhighlight>
  
 
The method names are evident. The method <code>storeAsUrl()</code> is the exact representation of '''File - Save As''' from the '''File''' menu, that is, it changes the current document location. In contrast, <code>storeToUrl()</code> stores a copy to a new location, but leaves the current document URL untouched.  
 
The method names are evident. The method <code>storeAsUrl()</code> is the exact representation of '''File - Save As''' from the '''File''' menu, that is, it changes the current document location. In contrast, <code>storeToUrl()</code> stores a copy to a new location, but leaves the current document URL untouched.  
Line 28: Line 29:
  
 
In ''TypeDetection.xml'' look for <code><Filter/></code> elements, their <code>cfg:name</code> attribute contains the needed strings for <code>FilterName</code>. The proper filter name for StarWriter 5.x is "StarWriter 5.0", and the export format "MS Word 97" is also popular. This is the element in ''TypeDetection.xml'' that describes the MS Excel 97 filter:
 
In ''TypeDetection.xml'' look for <code><Filter/></code> elements, their <code>cfg:name</code> attribute contains the needed strings for <code>FilterName</code>. The proper filter name for StarWriter 5.x is "StarWriter 5.0", and the export format "MS Word 97" is also popular. This is the element in ''TypeDetection.xml'' that describes the MS Excel 97 filter:
 
+
<syntaxhighlight lang="xml">
 
   <Filter cfg:name="MS Excel 97">
 
   <Filter cfg:name="MS Excel 97">
 
     <Installed cfg:type="boolean">true</Installed>  
 
     <Installed cfg:type="boolean">true</Installed>  
Line 36: Line 37:
 
     <Data cfg:type="string">5,calc_MS_Excel_97,com.sun.star.sheet.SpreadsheetDocument,,3,,0,,</Data>  
 
     <Data cfg:type="string">5,calc_MS_Excel_97,com.sun.star.sheet.SpreadsheetDocument,,3,,0,,</Data>  
 
   </Filter>
 
   </Filter>
 
+
</syntaxhighlight>
 
The following method stores a document using this filter:
 
The following method stores a document using this filter:
 
+
<syntaxhighlight lang="java">
 
   /** Store a document, using the MS Excel 97/2000/XP Filter  
 
   /** Store a document, using the MS Excel 97/2000/XP Filter  
 
   */
 
   */
Line 50: Line 51:
 
       xStorable.storeAsURL(storeUrl, storeProps);  
 
       xStorable.storeAsURL(storeUrl, storeProps);  
 
   }  
 
   }  
 
+
</syntaxhighlight>
If an empty array of <code>PropertyValue</code> structs is passed, the native .ods format of {{PRODUCTNAME}} API is used.
+
If an empty array of <code>PropertyValue</code> structs is passed, the native .ods format of {{AOo}} API is used.
  
 
{{PDL1}}
 
{{PDL1}}
  
 
[[Category:Documentation/Developer's Guide/Spreadsheet Documents]]
 
[[Category:Documentation/Developer's Guide/Spreadsheet Documents]]

Latest revision as of 15:00, 17 May 2022



Storing

Documents are storable through their interface com.sun.star.frame.XStorable. This interface is discussed in detail in Office Development. An XStorable implements these operations:

  boolean hasLocation()
  string getLocation()
  boolean isReadonly()
  void store() 
  void storeAsURL([in] string aURL, [in] sequence< com::sun::star::beans::PropertyValue > aArgs)
  void storeToURL([in] string aURL, [in] sequence< com::sun::star::beans::PropertyValue > aArgs)

The method names are evident. The method storeAsUrl() is the exact representation of File - Save As from the File menu, that is, it changes the current document location. In contrast, storeToUrl() stores a copy to a new location, but leaves the current document URL untouched.

Exporting

For exporting purposes, a filter name can be passed that triggers an export to other file formats. The property needed for this purpose is the string argument FilterName that takes filter names defined in the configuration file:

 <OfficePath>\share\config\registry\instance\org\openoffice\Office\TypeDetection.xml

In TypeDetection.xml look for <Filter/> elements, their cfg:name attribute contains the needed strings for FilterName. The proper filter name for StarWriter 5.x is "StarWriter 5.0", and the export format "MS Word 97" is also popular. This is the element in TypeDetection.xml that describes the MS Excel 97 filter:

  <Filter cfg:name="MS Excel 97">
    <Installed cfg:type="boolean">true</Installed> 
    <UIName cfg:type="string" cfg:localized="true">
      <cfg:value xml:lang="en-US">Microsoft Excel 97/2000/XP</cfg:value> 
    </UIName>
    <Data cfg:type="string">5,calc_MS_Excel_97,com.sun.star.sheet.SpreadsheetDocument,,3,,0,,</Data> 
  </Filter>

The following method stores a document using this filter:

  /** Store a document, using the MS Excel 97/2000/XP Filter 
   */
  protected void storeDocComponent(XComponent xDoc, String storeUrl) throws java.lang.Exception {
 
      XStorable xStorable = (XStorable)UnoRuntime.queryInterface(XStorable.class, xDoc);
      PropertyValue[] storeProps = new PropertyValue[1];
      storeProps[0] = new PropertyValue();
      storeProps[0].Name = "FilterName";
      storeProps[0].Value = "MS Excel 97"; 
      xStorable.storeAsURL(storeUrl, storeProps); 
  }

If an empty array of PropertyValue structs is passed, the native .ods format of Apache OpenOffice API is used.

Content on this page is licensed under the Public Documentation License (PDL).
Personal tools
In other languages