Thanks for your help Juergen.
I try this.
unoidl.com.sun.star.sheet.XSheetCellCursor
xCursor = xSheet.createCursor();
unoidl.com.sun.star.sheet.XUsedAreaCursor
xUsedCursor =
(unoidl.com.sun.star.sheet.XUsedAreaCursor)xCursor;
xUsedCursor.gotoStartOfUsedArea(true);
xUsedCursor.gotoEndOfUsedArea(true);
But I don't find the way to extract the range of used cells.
Accessible methods for xUsedCursor are:
xUsedCursor.Equals()
xUsedCursor.GetHashCode()
xUsedCursor.GetType()
xUsedCursor.gotoStartOfUsedArea()
xUsedCursor.gotoEndOfUsedArea()
xUsedCursor.ToString()
I miss someting in the access principle.
Thank's for your help.
------------------------------
Paul Veuve
[EMAIL PROTECTED]
------------------------------
CDI CONSEILS ET DEVELOPPEMENTS
INDUSTRIELS SA
Chemin de la Justice 15
CH-2000 NEUCHATEL
------------------------------
http://www.cdisa.ch
Phone (+41 32) 733 31 31
or (+41 78) 600 31 31
Fax (+41 32) 733 31 32
------------------------------
-----Message d'origine-----
De : Juergen Schmidt [mailto:[EMAIL PROTECTED]
Envoyé : mardi, 21. novembre 2006 17:36
À : [email protected]
Objet : Re: [dev] Calc C#CLI programming
Paul Veuve wrote:
> Hello Juergen,
>
> Thank's for your answer.
>
>>> XStorable.store() ..
>
> But, how can I link the XStorable object to the
> unoidl.com.sun.star.sheet.XSpreadsheetDocument ?.
i would expect
unoidl.com.sun.star.frame.XStorable xStore; xStore =
(unoidl.com.sun.star.frame.XStorable) xComponent;
>
>>> - get the used cell range for the selected sheet
>
> Get the used range in a sheet:
> B5 and D3 are not empty -> range would be A0:D5
i haven't a final solution in place but you should play with
- got the XSheetCellCursor -> supports XUsedAreaCursor
- use the XUsedAreaCursor
goto start -> expand to the end -> you should now have the active range
sorry, that i haven't a working snippet 8no time to test it in detail)
Juergen
>
> I would like also get the cell or a collection of cells containing a
> given value or formula (ex: cells containing "MyText")
>
>>> In general it is a good idea to ask this kind of question on the
>>> [EMAIL PROTECTED]
> mailing list
> I do bus was not successful.
>
> Thanks for your help.
>
> ------------------------------
> Paul Veuve
> [EMAIL PROTECTED]
> ------------------------------
> CDI CONSEILS ET DEVELOPPEMENTS
> INDUSTRIELS SA
> Chemin de la Justice 15
> CH-2000 NEUCHATEL
> ------------------------------
> http://www.cdisa.ch
>
> Phone (+41 32) 733 31 31
> or (+41 78) 600 31 31
>
> Fax (+41 32) 733 31 32
> ------------------------------
> -----Message d'origine-----
> De : Juergen Schmidt [mailto:[EMAIL PROTECTED] Envoyé : mardi,
> 21. novembre 2006 07:23 À : [email protected] Objet : Re: [dev] Calc
> C#CLI programming
>
> Hi Paul,
>
> Paul Veuve wrote:
>> Hello,
>>
>> I am using Calc with uno in C# (CLI VS2003).
>>
>> But don't find,in CLI C#, howto:
>> - save document
>
> The good ting is that it is one API for all languages, it should be
> relatively easy to translate examples from C++ or Java to C#. In case
> of saving use simply one of the following methods
>
> XStorable.store() without parameter, store the document under the same
> Url XStorable.storeSelf( ....) parameter with optional values for
> saving
>
>
>> - get the used cell range for the selected sheet
> what do you exactly mean here
>
>
> In general it is a good idea to ask this kind of question on the
> [EMAIL PROTECTED] mailing list
>
> Juergen
>
>> There is unfortunately no sample for this in C#.
>> I have some trouble to find the way to convert Java sample to C#.
>>
>> Thanks for your help
>>
>> My working sample code to open a sheet and access to cells:
>> ----------------------------------------------------
>> using System;
>> using unoidl.com.sun.star.lang;
>> using unoidl.com.sun.star.uno;
>> using unoidl.com.sun.star.bridge;
>> using unoidl.com.sun.star.frame;
>>
>> using unoidl.com.sun.star.beans;
>> using unoidl.com.sun.star.sheet;
>> using unoidl.com.sun.star.table;
>>
>> namespace OOoCDIConsoleSample
>> {
>> class Class1
>> {
>> [STAThread]
>> static void Main(string[] args)
>> {
>> unoidl.com.sun.star.uno.XComponentContext
>> m_xContext;
>> unoidl.com.sun.star.lang.XMultiServiceFactory
>> mxMSFactory;
>> unoidl.com.sun.star.sheet.XSpreadsheetDocument
>> mxDocument;
>> unoidl.com.sun.star.container.XIndexAccess
>> xSheetsIA;
>> unoidl.com.sun.star.sheet.XSpreadsheets
>> xSheets;
>> unoidl.com.sun.star.sheet.XSpreadsheet
>> xSheet;
>> unoidl.com.sun.star.table.XCell
>> xCell;
>>
>> try
>> {
>> // get the remote office component context
>>
>> m_xContext = uno.util.Bootstrap.bootstrap();
>>
>> Console.WriteLine("Connected to a running
> office ...");
>> mxMSFactory = (XMultiServiceFactory)
>> m_xContext.getServiceManager();
>> String available = (mxMSFactory != null ?
>> "available" : "not available");
>>
>> Console.WriteLine( "remote ServiceManager is
> " + available );
>> XComponentLoader aLoader =
>> (XComponentLoader)
>> mxMSFactory.createInstance(
>> "com.sun.star.frame.Desktop" );
>>
>> XComponent xComponent =
>> aLoader.loadComponentFromURL
>> (
>> "file:///C:/x.ods",
>> "_blank",
>> 0,
>> new
>> unoidl.com.sun.star.beans.PropertyValue[0]
>> );
>> mxDocument =
>> (unoidl.com.sun.star.sheet.XSpreadsheetDocument) xComponent;
>>
>> xSheets = mxDocument.getSheets();
>>
>> xSheetsIA =
>> (unoidl.com.sun.star.container.XIndexAccess) xSheets;
>>
>> xSheet =
>> (unoidl.com.sun.star.sheet.XSpreadsheet) xSheetsIA.getByIndex( 1
>> ).Value;
>>
>> // xSheet =
>> (unoidl.com.sun.star.sheet.XSpreadsheet)
>> xSheetsIA.getByName("Project");
>>
>> xCell = xSheet.getCellByPosition( 0, 0 );
>>
>> Console.WriteLine("Cell value = '" +
>> xCell.getValue() + "'");
>> Console.WriteLine("Cell Type1 = '" +
>> xCell.getType() + "'");
>> Console.WriteLine("Cell Type2 = '" +
>> xCell.GetType() + "'");
>> Console.WriteLine("Cell Formula = '" +
>> xCell.getFormula() + "'");
>> Console.WriteLine("Cell Error = '" +
>> xCell.getError() + "'");
>>
>> xCell.setValue(123);
>>
>> Console.WriteLine("Cell value = '" +
>> xCell.getValue() + "'");
>> Console.WriteLine("Cell Type1 = '" +
>> xCell.getType() + "'");
>> Console.WriteLine("Cell Type2 = '" +
>> xCell.GetType() + "'");
>> Console.WriteLine("Cell Formula = '" +
>> xCell.getFormula() + "'");
>> Console.WriteLine("Cell Error = '" +
>> xCell.getError() + "'");
>>
>> xSheets.insertNewByName("NewTabCDI", 0);
>> xSheets.moveByName("NewTabCDI", 2);
>>
>> Console.ReadLine();
>>
>> xComponent.dispose();
>>
>> }
>> catch (System.Exception ex)
>> {
>> Console.WriteLine(ex.ToString());
>> }
>> Console.ReadLine();
>> }
>> }
>> }
>>
>> ------------------------------
>> Paul Veuve
>> [EMAIL PROTECTED]
>> ------------------------------
>> CDI CONSEILS ET DEVELOPPEMENTS
>> INDUSTRIELS SA
>> Chemin de la Justice 15
>> CH-2000 NEUCHATEL
>> ------------------------------
>> http://www.cdisa.ch
>>
>> Phone (+41 32) 733 31 31
>> or (+41 78) 600 31 31
>>
>> Fax (+41 32) 733 31 32
>> ------------------------------
--
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.5.432 / Virus Database: 268.15.21/589 - Release Date: 15.12.2006
17:10
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]