Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 21. 10. 2008 08:51:58

Vikes
Člen
Registrace: 21. 10. 2008
Příspěvků: 2

Export listu do html.

Zdravím,
měl bych možná trošku netypický dotaz. Potřeboval bych z calcu exportovat do html ale z podmínkou že výsledný html soubor bude obsahovat jen  tělo dokumentu tj. bez tagů <html><head><body> atd...jen vlatně samotnou tabulku. Měl by někdo nápad jak to udělat?
Děkuji za reakce.

Editoval Vikes (21. 10. 2008 08:52:53)

Offline

#2 31. 10. 2008 14:00:23

kk.ace
Člen
Registrace: 15. 10. 2008
Příspěvků: 8

Re: Export listu do html.

Bude to jenom nástin řešení, ale snad pomůže - když se podíváte do menu Nástroje -> Nastavení XML filtru, tak tam můžete nalézt exportní XSLT pro export do "obyčejného" HTML - tj. včetně těch tagů, které nechcete... Tipoval bych, že nebude až tak složité upravit tento XSLT soubor a vytvořit nový exportní filtr jenom pro vytvoření <table> ... </table> struktury...

Offline

#3 31. 10. 2008 15:56:01

kk.ace
Člen
Registrace: 15. 10. 2008
Příspěvků: 8

Re: Export listu do html.

Řekl jsem si, že by to mohl být zajímavý experiment a zkusil jsem to dát nějak dohromady.
Vykuchal jsem dodávaný xhtml export, tak aby zůstala jen tabulka (obalená do jednoho DIV-u, ale to by snad nemuselo vadit...

Výsledek je ke stažení zde: http://www.uloz.cz/show/file/85505-html_table.zip

Instalace:
1) najít adresář, ve kterém je uložený stávající exportní xslt do xhtml
(u mně je to třeba C:\Program Files\OpenOffice.org 3\Basis\share\xslt\export\xhtml)
a rozbalit do něj soubory z toho zipu.

2) Otevřít z menu: Nástroje -> Nastavení XML filtru

3) Kliknout na Nový a vyplnit: Název (např. HTML table), Aplikace (OpenOffice.org Calc (.ods)), Jméno typu souboru (např. HTML - table only), Přípona (např. html), na záložce Transformace pak kliknout na tlačítko Procházet u XSLT pro export a v příslušném adresáři (viz krok 1)) vybrat soubor opendoc2html_table.xsl

4) toť vše - v dialogu pro export by se měla objevít volba nového typu souboru (HTML - table only) a vyexportovaný soubor by měl obsahovat jenom DIV s tabulkou.

(Vím, že v dialogu Nastavení XML filtru je tlačítko pro export, ale nevyexportovalo se mi to komplet včetně souborů, které se includují, takže proto složitější ruční instalace.)

Doufám, že to pomůže - samozřejmě je to bez jakékoli záruky smile.

Offline

#4 1. 11. 2008 11:41:44

Vikes
Člen
Registrace: 21. 10. 2008
Příspěvků: 2

Re: Export listu do html.

kk.ace napsal(a)

Řekl jsem si, že by to mohl být zajímavý experiment a zkusil jsem to dát nějak dohromady.
Vykuchal jsem dodávaný xhtml export, tak aby zůstala jen tabulka (obalená do jednoho DIV-u, ale to by snad nemuselo vadit...

Výsledek je ke stažení zde: http://www.uloz.cz/show/file/85505-html_table.zip

Instalace:
1) najít adresář, ve kterém je uložený stávající exportní xslt do xhtml
(u mně je to třeba C:\Program Files\OpenOffice.org 3\Basis\share\xslt\export\xhtml)
a rozbalit do něj soubory z toho zipu.

2) Otevřít z menu: Nástroje -> Nastavení XML filtru

3) Kliknout na Nový a vyplnit: Název (např. HTML table), Aplikace (OpenOffice.org Calc (.ods)), Jméno typu souboru (např. HTML - table only), Přípona (např. html), na záložce Transformace pak kliknout na tlačítko Procházet u XSLT pro export a v příslušném adresáři (viz krok 1)) vybrat soubor opendoc2html_table.xsl

4) toť vše - v dialogu pro export by se měla objevít volba nového typu souboru (HTML - table only) a vyexportovaný soubor by měl obsahovat jenom DIV s tabulkou.

(Vím, že v dialogu Nastavení XML filtru je tlačítko pro export, ale nevyexportovalo se mi to komplet včetně souborů, které se includují, takže proto složitější ruční instalace.)

Doufám, že to pomůže - samozřejmě je to bez jakékoli záruky smile.

Dík moc přesně takhle jsem si to představoval. Tušil jsem že to pujde nastavním xml filtru, ale nějak sem se tím moc neprokousal. Jinak problém se týkal stránky http://hokejovestatistiky.ic.cz zatím tam jsou stránky v pdf, což byl způsob jak dostat data z excelu. Nu ale tedka mám díky Vaší opovědi možnost na stránku vkládat přímo jako hmtl.
Děkuji.
edit: Zrovna jsem vyzkoušel a v principu funguje, až na kódování češtiny a také že se nexportuje například ohraničení buněk, tučné písmo, font atd... Já jsem to nakonec vyřešil v php funkcí která ořeže tagy které nepotřebuji.

Editoval Vikes (1. 11. 2008 12:02:04)

Offline

#5 19. 5. 2009 10:32:35

tomeks
Člen
Registrace: 19. 5. 2009
Příspěvků: 1

Re: Export listu do html.

Zdravim, mam trosku jiny problem s exportem listu, jde nejak ulozit v Calcu pouze jeden list do html ze sesitu s vice listy?
Diky T.

Offline

#6 21. 5. 2009 13:22:21

mirozm
Člen
Registrace: 9. 1. 2006
Příspěvků: 49

Re: Export listu do html.

Ǎno, skúste použiť  nasledovné makro, ktoré možete priradiť k tlačítku, alebo si ho umiestnite niekam do menu a samozrejme tie názvy v prvom makre si doplňte:

sub export_list
SheetToHTML("názov listu ktorý chcem uložiť","/media/hda5/firma/web/názov a cesta súboru pod ktorým to chcem uložiť.html")
end sub

sub SheetToHTML(optional sSheetName as string,optional subor as string,optional sRange as string,optional sOrientation as string)
dim i as integer
dim arg(0) as new com.sun.star.beans.PropertyValue
dim PA() as object
dim CRA(0) as new com.sun.star.table.CellRangeAddress
' skryta vychozi objektova promenna
  with ThisComponent.Sheets
  ' Pokud je to nutne nastav vychozi parametry
    if IsMissing(sSheetName) or sSheetName = "" then sSheetName = .getByIndex(.Count-1).Name
    if IsMissing(subor) then subor = "/media/hda5/testHTML.html" ' aj tu si cestu upraviť         
    if IsMissing(sRange) then sRange = ""
    if IsMissing(sOrientation) then sOrientation = ""
  ' Nastav orientaci stranky
    arg(0).Name = "PaperOrientation"
    with com.sun.star.view.PaperOrientation
      select case lcase(sOrientation)
        case "portrait"
          arg(0).Value = .PORTRAIT
          ThisComponent.Printer =arg()
        case "landscape"
          arg(0).Value = .LANDSCAPE
          ThisComponent.Printer =arg()
      end select
    end with
    dim bVisible(.Count-1)
  ' Priprava listu pro vystup do html
    for i = 0 to .Count-1
      with .getByIndex(i)
      ' uloz viditelnost listu
        bVisible(i) = .IsVisible
      ' uloz oblasti tisku
        redim preserve PA(i)
        PA(i) = .PrintAreas
      ' zrus oblasti tisku
        .PrintAreas = array()
        if .Name = sSheetName Then
        ' Zadany list bude viditelny
          .IsVisible = true
        ' Dle potreby se nastavi oblast tisku,
        ' pro neexistujici adresu ale preskoc
          on error goto ERR_NEXT
          if sRange <> "" then
            CRA(0) = .getCellRangeByName(sRange).RangeAddress
            .setPrintAreas(CRA())
          end if
ERR_NEXT:               
          on error goto 0
        else
        ' Skryj nezadouci listy
          .IsVisible = false
        end if
      end with
    next i
  ' Uloz vybrany list do html
    arg(0).Name = "FilterName"
    arg(0).Value = "HTML (StarCalc)"
    ThisComponent.storeToURL(ConvertToUrl(subor), arg())
  ' Vraceni vsech listu do puvodniho stavu
    for i = 0 to .Count-1
      with .getByIndex(i)
      ' Zobraz puvodni listy
        .IsVisible = bVisible(i)
      ' Nastav puvodni tiskove oblasti
        .PrintAreas = PA(i)
      end with
    next i
  end with
end sub


miro

Editoval mirozm (21. 5. 2009 13:36:24)


LO 5.1.6  platforma Ubuntu-linux 16.04

Offline

#7 21. 5. 2009 21:26:04

hanus
Člen
Místo Olomouc
Registrace: 29. 11. 2006
Příspěvků: 573
Web

Re: Export listu do html.

to tomeks:
1) technická: Prosím, na nové dotazy zakládejte nová témata - lépe se v tom orientuje jak nám odpovídajícím, tak těm, co zde hledají odpovědi na své otázky

2) k vašemu dotazu: A nebo třeba jen tak, že skyreje všechny listy kromě toho, co chcete uložit do HTML :-)
Skrývání listů: Formát -> List -> Skrýt
Bohužel nejde skrýt více listů najednou, musí se po jednom :-/
Pokud nemáte listy mezi sebou provázané, pak je jednodušší ty ostatní smazat za účelem uložení toho jednoho zbylého. Skrývání listů ovšem zachovává vazby/výpočty mezi listy.
A koukám, že to makro taky pracuje s (ne)viditelností listů.

Editoval hanus (21. 5. 2009 21:35:42)

Offline

Zápatí