Datenaufbereitung - Automatisch von Word/Excel nach TXT/CSV mit OpenOffice: Unterschied zwischen den Versionen

Aus TV-Browser Wiki
Wechseln zu: Navigation⧼comma-separator⧽Suche
Bodo⧼word-separator⧽⧼parentheses⧽
⧼parentheses⧽
Morethantv⧼word-separator⧽⧼parentheses⧽
K ⧼parentheses⧽
Zeile 1: Zeile 1:
Viele kleinere Sender haben kein WWW-Presseportal, sondern versenden die Program-Informationen mit Hilfe von
+
Viele kleinere Sender haben kein Web-Presseportal, sondern versenden die Programinformationen mit Hilfe von ''Word''-/''Excel''-Dateien.
Word/Excel-Dateien.
 
  
Diese Word-Dateien kann man sehr schlecht mit Java bearbeiten. Ich benutze bei mir OpenOffice, um automatisch aus den Word-Dokumenten Txt-Dateien zu erzeugen.
+
Die ''Word''-Dateien kann man nur recht umständlich mit Java auslesen lassen. Hier ist ''OpenOffice'' eine Hilfe, um aus den ''Word''-Dokumenten automatisch Textdateien erzeugen zu lassen.
  
Alternativ kann man aus Excel-Tabellen auch CSV-Dateien erzeugen
+
Alternativ kann man aus ''Excel''-Tabellen auch ''csv''-Dateien erzeugen. Dazu muss ein neues Makro erzeugt werden:
 
 
Dazu muß ein neues Marko erzeugt werden:
 
  
 
  Sub ConvertWordToTXT( cFile )
 
  Sub ConvertWordToTXT( cFile )
Zeile 62: Zeile 59:
 
                                
 
                                
  
Diese Makro kann von der Kommandozeile bedient werden mit:
+
Dieses Makro kann von der Kommandozeile wie folgt bedient werden:
  
 
  soffice -invisible "macro:///BodumsLibrary.Conversion.ConvertWordToTXT('Test.doc')"
 
  soffice -invisible "macro:///BodumsLibrary.Conversion.ConvertWordToTXT('Test.doc')"
Zeile 70: Zeile 67:
 
  soffice -invisible "macro:///BodumsLibrary.Conversion.ConvertExcelToCSV('Test.xls')"
 
  soffice -invisible "macro:///BodumsLibrary.Conversion.ConvertExcelToCSV('Test.xls')"
  
 +
Nach diesem Aufruf existiert eine Datei ''Test.txt'' im Verzeichnis des Dokumentes ''Test.doc''. Natürlich muss der Name der Programmbibliothek (''Library'') angepasst werden.
  
Nach diesem Aufruf existiert eine Test.txt in dem selben Verzeichniss wie die Test.doc. Natürlich muß der Name der Library angepasst werden.
+
Nachdem nun die Textdatei vorliegt, ist "nur noch" das weiterverarbeitende PDS zu erzeugen.
 
 
Nachdem nun die TXT-Datei vorliegt muß "nur noch" der PDS dafür erzeugt werden.
 

Version vom 27. November 2006, 21:27 Uhr

Viele kleinere Sender haben kein Web-Presseportal, sondern versenden die Programinformationen mit Hilfe von Word-/Excel-Dateien.

Die Word-Dateien kann man nur recht umständlich mit Java auslesen lassen. Hier ist OpenOffice eine Hilfe, um aus den Word-Dokumenten automatisch Textdateien erzeugen zu lassen.

Alternativ kann man aus Excel-Tabellen auch csv-Dateien erzeugen. Dazu muss ein neues Makro erzeugt werden:

Sub ConvertWordToTXT( cFile )
  cURL = ConvertToURL( cFile )

  ' Open the document.
  ' Just blindly assume that the document is of a type that OOo will
  '  correctly recognize and open -- without specifying an import filter.
  oDoc = StarDesktop.loadComponentFromURL( cURL, "_blank", 0, Array(_
           MakePropertyValue( "Hidden", True ),_
           ) )


  cFile = Left( cFile, Len( cFile ) - 4 ) + ".txt"
  cURL = ConvertToURL( cFile )

  ' Save the document using a filter.
  oDoc.storeToURL( cURL, Array(MakePropertyValue( "FilterName", "TEXT" ))

  oDoc.close( True )
End Sub


Sub ConvertExcelToCSV( cFile )
  cURL = ConvertToURL( cFile )

  ' Open the document.
  ' Just blindly assume that the document is of a type that OOo will
  '  correctly recognize and open -- without specifying an import filter.
  oDoc = StarDesktop.loadComponentFromURL( cURL,"_blank", 0, Array(_
           MakePropertyValue( "Hidden", True ),_
           ) )


  cFile = Left( cFile, Len( cFile ) - 4 ) + ".csv"
  cURL = ConvertToURL( cFile )

  ' Save the document using a filter.
  oDoc.storeToURL( cURL, Array(MakePropertyValue( "FilterName", "Text - txt - csv (StarCalc)" ))

  oDoc.close( True )
End Sub


Function MakePropertyValue( Optional cName As String, Optional uValue ) As com.sun.star.beans.PropertyValue
  Dim oPropertyValue As New com.sun.star.beans.PropertyValue
  If Not IsMissing( cName ) Then
     oPropertyValue.Name = cName
  EndIf
  If Not IsMissing( uValue ) Then
     oPropertyValue.Value = uValue
  EndIf
  MakePropertyValue() = oPropertyValue
End Function
                              

Dieses Makro kann von der Kommandozeile wie folgt bedient werden:

soffice -invisible "macro:///BodumsLibrary.Conversion.ConvertWordToTXT('Test.doc')"

oder

soffice -invisible "macro:///BodumsLibrary.Conversion.ConvertExcelToCSV('Test.xls')"

Nach diesem Aufruf existiert eine Datei Test.txt im Verzeichnis des Dokumentes Test.doc. Natürlich muss der Name der Programmbibliothek (Library) angepasst werden.

Nachdem nun die Textdatei vorliegt, ist "nur noch" das weiterverarbeitende PDS zu erzeugen.