🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

[gelöst] Datumsdarstellung beim Importieren einer .xls

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Antworten
Mephisto
Beiträge: 6
Registriert: Mi 25. Jan 2012, 10:52

[gelöst] Datumsdarstellung beim Importieren einer .xls

Beitrag von Mephisto » Do 26. Jan 2012, 11:21

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!
Zuletzt geändert von Mephisto am Do 26. Jan 2012, 14:20, insgesamt 1-mal geändert.

Mephisto
Beiträge: 6
Registriert: Mi 25. Jan 2012, 10:52

Re: Datumsdarstellung beim Importieren einer .xls

Beitrag von Mephisto » Do 26. Jan 2012, 14:20

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!


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten