Seite 1 von 1

[gelöst] Datumsdarstellung beim Importieren einer .xls

Verfasst: Do 26. Jan 2012, 11:21
von Mephisto
Tach zusammen!

Wieder mal stehe (bzw. sitze :P) ich da und weiß nicht weiter.

Ich hab eine xls-File, die ich in eine Tabelle aus LO importieren möchte. Dazu habe ich folgendes Makro (nur ein Auszug):

Code: Alles auswählen

 ' Object for the new sheet     
	    oNewSheet = _
	     oImport2Calc.Sheets().getByName( sSheetName )
	
	    ' Determine Filter
	    Dim FileProperties(0) AS New com.sun.star.beans.PropertyValue
	    FileProperties(0).Name = "FilterName"
	    FileProperties(0).Value ="MS Excel 97"
							 
	
	    ' Open File
	    oXLS = _
	     StarDesktop.loadComponentFromURL( _
	     sUrl, "_blank", 0, FileProperties())
	        
	    ' Identify the area of data
	    oSourceSheet = oXLS.Sheets( 0 )
	    
	    Dim iiColumns AS Long
	    Dim iiRows AS Long
	    iiColumns = _
	        iC2C_getLastUsedColumn( oSourceSheet )
	    iiRows = _
	        iC2C_getLastUsedRow( oSourceSheet )
	        
	    ' pull out all data AS an array
	    oSourceArea = _
	     oSourceSheet.getCellRangeByPosition( 0, 0, iiColumns, iiRows )
	        
	    allData = _
	     oSourceArea.getDataArray()
	        
	    ' Target area in the same size set
	    oEndArea = oNewSheet.getCellRangeByPosition( 0, 0, iiColumns, iiRows )
	     ' purely write Data array
	     oEndArea.setDataArray( allData() )
	    
	    ' CSV file closed  
	    oXLS.close( TRUE )
Eines der zu importierenden Spalten enthält ein Datum. D.h. je nach voreinstellung wird dieses auch als 01/01/2000 oder 01.01.2000 dargestellt.
Wenn ich es jedoch importieren möchte, habe ich in meinem LO Dokument beim Datum immer eine (scheinbar) zufällige Zahl stehen. So wird beispielsweise aus "30.03.2012" eine "40998".

Wie bekomme ich LO dazu mir mein Excel-File zu importieren? Wenn ich auf "Einfügen --> Tabelle aus Datei" gehe funktioniert alles einwandfrei. Aber den Makrorecorder kann man diesbezüglich in die Tonne haun ;)

Schonmal vielen dank fürs Durchlesen! Wäre über Hilfe sehr dankbar!

Re: Datumsdarstellung beim Importieren einer .xls

Verfasst: Do 26. Jan 2012, 14:20
von Mephisto
hi egsel!

Wenn ich die Zelle als Datumsfeld spezifiziere, wird das Feld richtig dargestellt.

Als Basic-Code hab ich es jetzt folgendermaßen gelöst:

Code: Alles auswählen

	    rem ----------------------------------------------------------------------
		rem define variables
		dim document   as object
		dim dispatcher as object
		rem ----------------------------------------------------------------------
		rem get access to the document
		document   = ThisComponent.CurrentController.Frame
		dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
		
		ThisComponent.CurrentController.select(oNewSheet.columns(92)) 
		
		rem ----------------------------------------------------------------------
		dim args1(0) as new com.sun.star.beans.PropertyValue
		args1(0).Name = "NumberFormatValue"
		args1(0).Value = 36 ' 36 = DD.MM.JJJJ
		
		dispatcher.executeDispatch(document, ".uno:NumberFormatValue", "", 0, args1())
Vielen Dank!