Skocz do zawartości

Openoffice.calc


dartagnan

Rekomendowane odpowiedzi

Witam.

Poprzez przeglądarkę internetową firefox generuje raport.csv

Za każdym razem muszę ustawiać kodowanie oraz takie opcje jak oddziel tabulatory, średnik aby były widoczne kolumny i czytelne znaki.

W jaki sposób ustawić je jako domyślne oraz żeby openoffice zapisywał "wyciągany" plik jako arkusz.xml

Próbowałem to zrobić w ustawieniach.

Odnośnik do komentarza
Udostępnij na innych stronach

Ja nie jestem pewien, czy to jest temat na oślą łączkę.

Moim zdaniem zmiana domyślnych ustawień filtra importu nie jest możliwa sposobami przewidzianymi przez producenta. Natomiast makropoleceniem -- i owszem. Wobec tego albo ,,Oprogramowanie'', albo nawet ,,Programowanie''.

 

Poniżej zamieszczam szkic kodu StarBasic, który wczytuje plik tekstowy i zapisuje dane w pliku ods. Opcje importu są konfigurowalne w zmiennej args1.

Pełną listę parametrów filtra znajdziesz w http://wiki.services.openoffice.org/wiki/D.../Filter_Options

Jeżeli Twój plik jest ładowany przez http, to zamiast użycia okna dialogowego (wywołanie openfiledialog) można automatycznie wczytać dane z sieci, podając odpowiedni url.

Testowałem umiarkowanie, więc nie traktuj kodu bezkrytycznie.

sub Test()
   fname = openFileDialog()
   if fname = "" then exit sub
   oDoc = importFromText(fname)
   rem jakaś metoda określenia nazwy pliku wynikowego; dodaj zabezpieczenia przez nadpisaniem
   fname = fname  & ".ods"
   oDoc.storeToUrl(fname, Array())
end sub

function openFileDialog() as string
    rem okno dialogowe wyboru pliku
    dim picker as Object
    picker = CreateUnoService( "com.sun.star.ui.dialogs.FilePicker" )
    picker.setDisplayDirectory("file:///")
    If picker.execute() Then
         openFileDialog = picker.Files(0)
    else
         openFileDialog = ""
    End If
End function

function importFromText(byval fileURL as string) as object
   rem import pliku csv; zwraca uchwyt dokumentu
   Dim args1(3) as new com.sun.star.beans.PropertyValue
   args1(0).Name = "InteractionHandler"
   args1(0).Value = ""
   args1(1).Name = "FilterName"
   args1(1).Value = "Text - txt - csv (StarCalc)"
   args1(2).Name = "CharacterSet"
   args1(2).Value = 77              ' utf-8
   args1(3).Name = "FilterOptions"  ' opcje importu
   args1(3).Value = "9"             ' separator pól: Tab
   rem więcej opcji: http://wiki.services.openoffice.org/wiki/D.../Filter_Options
   oDesk = createUnoService("com.sun.star.frame.Desktop")
   oDoc = oDesk.LoadComponentFromURL(fileURL, "_blank", 0, args1())
   importFromText = oDoc
end function

Uruchomisz go w Calcu przez Narzędzia/Makra/Zarządzaj/Makro/edycja/... i gdziś stwórz sobie nową bibliotekę z podaną wyżej zawartością.

Można też napisać makro w innym języku, a nawet skrypt, który utworzy plik OpenDocument (lub innym podobnym formacie) bez pomocy kobyły jaką jest OpenOffice.

 

Aha: firefox nie generuje raportu. Prawie na pewno nie.

 

<edit>

Przejrzałem opcje wiersza poleceń Calca. Nie da się zastosować filtra importu poprzez parametry polecenia systemowego uruchamiającego Calc.

Znalazłem za to wątek na podobny temat, może się przyda: http://www.oooforum.org/forum/viewtopic.phtml?t=54584

Rozwiązanie jest podobne do zamieszczonego wyżej.

</edit>

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...